KOTLIN · 기초 문법
스마트 캐스트 (Smart Cast)
is 검사 후 컴파일러가 자동으로 타입을 캐스팅합니다. 별도의 명시적 캐스트가 불필요합니다.
기초 문법중급smart-castisaswhen
핵심 설명
is 검사 후 컴파일러가 자동으로 타입을 캐스팅합니다. 별도의 명시적 캐스트가 불필요합니다.
Kotlin code
fun describe(obj: Any): String = when (obj) {
is String -> "문자열 길이: ${obj.length}"
is Int -> "정수의 2배: ${obj * 2}"
is List<*> -> "리스트 크기: ${obj.size}"
else -> "알 수 없는 타입"
}
fun safeCast(value: Any) {
// as? 안전 캐스트 (실패 시 null)
val str: String? = value as? String
println(str?.uppercase() ?: "문자열 아님")
// 스마트 캐스트 + 조건 결합
if (value is String && value.length > 5) {
println("긴 문자열: $value")
}
}
fun main() {
println(describe("Hello"))
println(describe(42))
safeCast("Kotlin")
}학습 팁
when과 is를 함께 사용하면 패턴 매칭처럼 타입별 분기를 깔끔하게 작성할 수 있습니다.
주의할 점
var 변수는 다른 스레드에서 변경될 수 있어 스마트 캐스트가 적용되지 않습니다. 지역 val로 복사하거나 as를 사용하세요.
자주 묻는 질문
스마트 캐스트 (Smart Cast)란 무엇인가요?
is 검사 후 컴파일러가 자동으로 타입을 캐스팅합니다. 별도의 명시적 캐스트가 불필요합니다.
스마트 캐스트 (Smart Cast) 학습 시 주의할 점은 무엇인가요?
var 변수는 다른 스레드에서 변경될 수 있어 스마트 캐스트가 적용되지 않습니다. 지역 val 로 복사하거나 as 를 사용하세요.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.