코틀린(Kotlin) 14. 스마트 캐스트(smart cast)

스마트 캐스트는 코틀린 컴파일러가 똑똑하게 자동으로 변환해주는 기능을 말한다.

명시적으로 타입을 변환할때 사용하는 asas? 를 사용한다.

스마트 캐스트는 다음과 같은 경우에 자동으로 수행된다.

예제)

fun main()
{ 
	val name : String ? = "TEST"
	if (name != null) print(name.length) //3
}

as 에 의한 스마트 캐스트


as는 형 변환이 가능하지 않으면 예외를 발생시킨다.

val x: String = y as String // y가 null 이면 형변환을 할수 없으므로 예외가 발생한다.

val x: String? = y as? String //실패할 경우도 고려해서 옵셔널로 캐스트 할려면 as? 를 사용한다.

Number