티스토리 뷰
반응형
자바에있는 상위 타입인 Object는 코틀린에는 없습니다.
그 대신 코틀린에는 Object와 비슷한 상위 타입인 Any가 있습니다.
fun main(args: Array<String>) {
println(typeCheck(null))
println(typeCheck(1))
println(typeCheck("1"))
println("========================")
val value = 7
// int 타입인 value의 값을 to'Type'()을 이용하여 강제 형변환
println(typeCheck2(value.toByte()))
println(typeCheck2(value.toShort()))
println(typeCheck2(value))
println(typeCheck2(value.toLong()))
println(typeCheck2(value.toFloat()))
println(typeCheck2(value.toDouble()))
println(typeCheck2(true))
println(typeCheck2(value.toChar()))
println(typeCheck2(value.toString()))
println(typeCheck2(null))
}
// Any는 자바에서 Object와 비슷합니다.
// is 는 자바에서 instanceof와 처럼 타입을 검사하는 용도로 사용합니다.
// 검사 시 자동 형변환이 일어나므로 명시적으로 타입을 캐스팅 할 필요가 없습니다.
fun typeCheck(obj: Any?): String {
if (obj !is String) return "Not a string, $obj"
else return "string, $obj"
}
fun typeCheck2(obj: Any?) =
when (obj) {
is Byte -> "Byte, $obj"
is Short -> "Short, $obj"
is Int -> "Int, $obj"
is Long -> "Long, $obj"
is Float -> "Float, $obj"
is Double -> "Double, $obj"
is Boolean -> "Boolean, $obj"
is Char -> "Char, $obj"
is String -> "String, $obj"
else -> "Unknown, $obj"
}
결과
Not a string, null
Not a string, 1
string, 1
========================
Byte, 7
Short, 7
Int, 7
Long, 7
Float, 7.0
Double, 7.0
Boolean, true
Char,
String, 7
Unknown, null
위 코드를 이해하기 위해서는 아래 코틀린 문법이 필수입니다.
2019/05/19 - [Kotlin] - 코틀린 기본 문법) 1. 코틀린 변수 정의하기
2019/05/19 - [Kotlin] - 코틀린 기본 문법) 2. 코틀린 함수 정의하기
2019/05/19 - [Kotlin] - 코틀린 기본 문법) 3. 코틀린 문자열 템플릿 String Template
2019/05/19 - [Kotlin] - 코틀린 기본 문법) 4. 코틀린에서 null 사용 및 null 값 처리
2019/05/19 - [Kotlin] - 코틀린 기본 문법) 5. 코틀린 조건식 if, when, switch 문 사용하기
반응형
'Kotlin' 카테고리의 다른 글
코틀린 기초 문법) 8. 코틀린 if문을 이용한 범위 검사 (0) | 2019.05.20 |
---|---|
코틀린 기초 문법) 7. 코틀린 for문, while문 알아보기 (0) | 2019.05.20 |
코틀린 기초 문법) 5. 코틀린 조건식 if, when, switch 문 사용하기 (0) | 2019.05.19 |
코틀린 기초 문법) 4. 코틀린에서 null 사용 및 null 값 처리 (0) | 2019.05.19 |
코틀린 기초 문법) 3. 코틀린 문자열 템플릿 String Template (0) | 2019.05.19 |
댓글
최근에 올라온 글
최근에 달린 댓글