함수
리턴타입도 추론타입으로 설정가능
fun main(args: Array<String>) {
val name = "마드리길"
var healthPoints = 89
val isBlessed = true
val isImmortal = false
val auraColor = auraColor(isBlessed, healthPoints, isImmortal)
val healthStatus = fromHelathStatus(healthPoints, isBlessed)
printPlayerStatus(auraColor, isBlessed, name, healthStatus)
}
private fun castFireball(numFireballs: Int) {
println("한 덩어리의 파이어블이 나타난다. (x$numFireballs)")
}
fun main(args: Array<String>) {
:
castFireball(5)
}
람다처럼 한줄로 표현 가능
private fun fromHelathStatus(healthPoints: Int, isBlessed: Boolean) =
when (healthPoints) {
100 -> "최상의 상태임!"
in 90..99 -> "약간의 찰과상만 있음."
in 75..89 -> if (isBlessed) "경미한 상처가 있지만 빨리 치유됨!"
else "경미한 상처만 있음."
in 15..74 -> "많이 다친 것 같음"
else -> "최악의 상태임!"
}
private fun castFireball(numFireballs: Int=2) =
println("한 덩어리의 파이어블이 나타난다. (x$numFireballs)"
Unit 함수
반환값이 없는 함수
반환 타입: Unit ▪ 함수의 디폴트 반환 타입
익명함수
이름이 없는 함수
변수에 대입하여 쓰고 변수를 함수로 사용한다.
람다형태
매개변수/ 반환값으로 바로 사용
{매개변수->
함수본체
}
fun main(args: Array<String>) {
val numLetters = "Mississippi".count({letter->
println("check:$letter")
letter=='s'
})
println(numLetters)
}
람다함수의 마지막 문장은 표현식이다
fun main(args: Array<String>) {
println({
val currentYear = 2021
"SimVillage(copyright $currentYear)"
}())
}
매개변수도 넣기
fun main(args: Array<String>) {
val greetingFunction: (String)->String = { playName->
val currentYear = 2021
"$playName, welcome to SimpleVillage (copyright $currentYear)"
}
println(greetingFunction("KIM"))
}
fun main(args: Array<String>) {
val greetingFunction = { playerName: String, numBuildings: Int ->
val currentYear = 2021
println("$numBuildings are add")
"$playerName, welcome to SimpleVillage (copyright $currentYear)"
}
runSimulation("KIM", greetingFunction)
}
fun runSimulation(playerName: String,
greetingFunction: (String,Int)->String){
val numBuildings = (1..3).shuffled().last()
println(greetingFunction(playerName,numBuildings))
}
null
변수가 null을 허용하는지(null 가능), 허용하지 않는지(null 불가능) 지정
fun main(args: Array<String>) {
var drink = "맥주"
drink = null
}
//안됨
fun main(args: Array<String>) {
var drink : String? = "맥주"
drink = null
}
//됨
const val NAME = "Taernly's Folly"
fun main(args: Array<String>) {
placeOrder()
}
private fun placeOrder(){
val indexofApostrophe = NAME.indexOf('\'')
val tarvernMaster = NAME.substring(0 until indexofApostrophe)
println("마드리같은 $tarvernMaster 에게 주문한다")
}
'앱개발 > 코틀린' 카테고리의 다른 글
안드로이드 runCatching (0) | 2023.04.16 |
---|---|
내가 헷갈리는 코틀린 문법 한번 더 정리 (0) | 2022.09.24 |
보일러 플레이트 코드 (0) | 2022.08.26 |
코틀린 (문자열) (0) | 2022.03.28 |
코틀린 (설치/변수/데이터타입/타입추론/if문) (0) | 2022.03.25 |