728x90
package com.example.kotlin
fun main() {
println(check(("안녕")))
println(check(3))
println(check(true))
cast("하이")
cast(3)
println(smartcast("안녕하세요"))
println(smartcast(3))
println(smartcast(true))
}
fun check(a: Any) : String {
return if(a is String) {
"문자열"
} else if(a is Int) {
"숫자"
}
else{
"몰라요"
}
}
fun check1(a: Any) : String {
return when (a) { // when 문도 사용 가능
is String -> {
"문자열"
}
is Int -> {
"숫자"
}
else -> {
"몰라요"
}
}
}
fun cast(a : Any) {
val result = a as? String //String으로 변환이 될 수 없는 상태면 Null로 만들어줌
val result1 = (a as? String) ?: "실패"
println(result)
println(result1)
}
fun smartcast(a : Any):Int {
return if(a is String) {
a.length
} else if(a is Int){
a.dec()
}
else {
-1
}
}
//Kotlin에서 type checking할 때 is를 쓴다.
//when문도 사용을 할 수 가 있다
//casting이 되고 나면 type checking하고 나서 해당 변수 타입처럼 쓸 수 있다. (smart casting)
// ?를 붙이면 casting 안 된 상황에서 null 내뱉는다.728x90
'코틀린(Kotlin)' 카테고리의 다른 글
| (코틀린/Kotlin) Lambda(람다) (0) | 2024.02.08 |
|---|---|
| (코틀린/Kotlin) String template (0) | 2024.02.06 |
| (코틀린/Kotlin) Null(널) (0) | 2024.02.06 |
| (코틀린/Kotlin) 컬렉션 (list, map) (0) | 2024.02.06 |
| (코틀린/Kotlin) 반복문 (0) | 2024.02.06 |