코틀린(Kotlin) 14. 스마트 캐스트(smart cast)
스마트 캐스트는 코틀린 컴파일러가 똑똑하게 자동으로 변환해주는 기능을 말한다.
명시적으로 타입을 변환할때 사용하는 as
와 as?
를 사용한다.
스마트 캐스트는 다음과 같은 경우에 자동으로 수행된다.
is
, !is
연산자로 변수 타입을 확인할 때fun main()
{
val name : String ? = "TEST"
if (name != null) print(name.length) //3
}
as
는 형 변환이 가능하지 않으면 예외를 발생시킨다.
val x: String = y as String // y가 null 이면 형변환을 할수 없으므로 예외가 발생한다.
val x: String? = y as? String //실패할 경우도 고려해서 옵셔널로 캐스트 할려면 as? 를 사용한다.