Kotlin의 Any Class와 타입 체크
※ 정리
☞ Any : kotlin.Any 모든 코틀린 클래스의 최상위 (java.lang.Object)
☞ type check : 런타임에서 type을 검사, 'is' , '!is' 연산자 (java의 instanceOf와 같음)
▶ Any type은 어떠한 자료형으로도 바뀔 수 있습니다.
▶ a3의 type이 처음에는 String -> Double형 -> Boolean 형으로 바뀐다.
1 2 3 4 5 | val a: Any = 1234 // kotlin.Any, 코틀린의 최상위 타입 클래스=? java Object와 비슷하지만 똑같지는 않다 val a2: Any = 'A' var a3: Any = "xyz" a3 = 3.141592 // double a3 = true // boolean | cs |
▶ Type check는 is로 한다.
▶ 만약, 아닌 것을 판달할 때에는 is 앞에 !을 붙인다. ex) 7번째줄에서... val b2 = b1 !is Int
▶ 7번째 줄에서, b1이 Int형이면 b2는 true, Int형이 아니면 false가 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | val a: Any = 1234 // kotlin.Any, 코틀린의 최상위 타입 클래스=? java Object와 비슷하지만 똑같지는 않다 val a2: Any = 'A' var a3: Any = "xyz" a3 = 3.141592 // double a3 = true // boolean val b1 = 365 val b2 = b1 is Int // 'is' type check => java의 instanceOf println("b1 is Int = ${b1 is Int}, b2 = ${b2}") println("a is Int = ${a is Int}") println("a2 is Char = ${a2 is Char}") println("a3 is Boolean = ${a3 is Boolean}") println("a3 is String = ${a3 is String}") | cs |
▼ 위 코드의 결과 화면
'Kotlin' 카테고리의 다른 글
[Kotlin] null가능형, 예외 및 null 안전성 (0) | 2018.09.20 |
---|---|
[Kotlin] 기본 자료형, 변수와 상수 (0) | 2018.07.18 |