안드로이드/코틀린

코틀린 when

송민준 2020. 6. 5. 07:02

when은 자바의  switch라고 볼 수 있다.

val a = "a"
val b: String

when(a) {
	"a" -> b = "하이"
    "b" -> b = "노하이"
    "c" -> b = "후후"
    "d" -> b = "히히"
    else -> b = "ㅎㅎ"
}

위와 같은 식으로 활용도 가능하고

값의 범위도 비교 가능하다

val c = 5

when(c) {
	in 1..10 -> print("x")
    !in 10..20 -> print("xx")
    else -> print("nothing")
}

 

객체 비교도 가능하다

data class Human(val name: String, val age: Int)

val person = Human("NEXA", 12)

when (Human) {
	Person("AAA", 13) -> print("A")
    Person("BBB", 12) -> print("B")
}
fun hasNext(x: Any) = when(x) {
	is String -> x.startsWith("Next")
    else -> false
}
val x = 2

when {
	x.isAdd() -> print("x is Add")
    x.isCadi() -> print("x is Cadi")
    else -> print("x is dd")
}