2019. 2. 3. 17:17ㆍProgramming/Kotlin
Udacity 강의를 보던 중, 내가 영어를 이렇게 못했나 싶을정도로 놓치는 내용이 많은 것 같아서, 내용과는 별개로 Kotlinlang.org의 내용을 정리하기로 했다.
When Expression
When은 C와같은 언어에서 Switch와 비슷한 동작을 수행한다.
when (x) {
1 -> print("x == 1") //x가 1이면 x == 1을 출력한다.
2 -> print("x == 2") //x가 2이면 x == 2를 출력한다.
3, 4 -> print("x == 3 or x == 4") //x가 3 혹은 4이면, x == 3 or x == 4를 출력한다.
in 5..10 -> print("x is in the range (5~10)") //x가 5~10 범위 내에 있을 때, x is in the range (5~10)을 출력한다.
else -> { // Note the block
print("x is neither 1 nor 2")
}
}
when은 if-else if 구조를 대체할수도 있다. argument가 주어지지 않으면 분기조건은 boolean 표현을 따라가며, true값일 때 각 분기조건이 실행된다.
when {
x.isOdd() -> print("x is odd")
x.isEven() -> print("x is even")
else -> print("x is funny")
}
위의 when에서 arguments는 주어지지 않았으므로, 각 분기는 주어진 Boolean 조건을 따르게 된다. x가 홀수이면 print("x is odd")
가 실행되며, 짝수일때는 print("x is even")
이 실행된다. 만약 어떤 분기조건에도 해당하지 않는다면, else에 해당하는 print("x is funny")
가 실행되게 된다.
Udacity의 Kotlin Bootcamp for Programmers에는 나오나 Kotlinlang.org의 When Expression 항목에는 나오지 않는 게 있는데, 함수의 return에 when을 사용할 수 있다.
fun isBiggerThan10(param_x:Int) :Boolean{
return when {
param_x>10 -> true
else -> false
}
}
isBiggerThan10(param_x)
를 실행하게 되면, 넘겨준 파라메터의 값에 따라서 Boolean값이 반환된다. 10보다 큰 값을 넘겨주면 true가 반환되며, 그 외의 값을 넘겨주면 false가 반환된다. 분기조건에 해당되는 값이 반환되므로, 유용하게 사용할 수 있다.
'Programming > Kotlin' 카테고리의 다른 글
Kotlin에서 JSONObject .get*의 확장 함수를 만들어봤다. (reflection, generics, reified) (0) | 2020.09.07 |
---|---|
코틀린으로 배우는 함수형 프로그래밍 연습문제 #3 [푸는 중] (1) | 2020.01.19 |
Backing Field와 Backing Properties (0) | 2019.02.12 |
Null Safety와 엘비스(Elvis) 오퍼레이터 (0) | 2019.02.05 |