[kotlin] 스마트 캐스트(Smart Cast)를 통한 데이터 타입 활용 in 코틀린

코틀린은 정적 타입 언어이기 때문에 변수의 타입을 명시적으로 지정해야 합니다. 하지만 코틀린은 똑똑한 기능을 제공하여 코드를 간결하게 작성할 수 있도록 도와줍니다. 이러한 기능 중 하나가 스마트 캐스트(Smart Cast) 입니다.

스마트 캐스트(Smart Cast)란?

코틀린은 변수의 타입을 자동으로 체크하여 해당 변수를 다른 타입으로 캐스팅할 수 있는 기능을 제공합니다. 이를 스마트 캐스트라고 칭합니다.

예를 들어, 다음과 같은 코드를 살펴보겠습니다.

fun process(input: Any) {
    if (input is String) {
        print(input.length) // 이 시점에서 input은 자동으로 String 타입으로 캐스팅됩니다.
    }
}

위의 예시에서 input is String으로 타입을 체크했을 때, 이후의 코드 블록에서 input 변수는 자동으로 String 타입으로 캐스팅됩니다.

스마트 캐스트의 활용

스마트 캐스트는 다양한 상황에서 유용하게 활용될 수 있습니다. 예를 들어, when 표현식에서 타입을 체크하고 해당 타입에 맞게 변수를 활용할 때 유용하게 사용될 수 있습니다.

fun printLength(input: Any) {
    when (input) {
        is String -> println(input.length) // input이 String이면 자동으로 캐스팅되어 length 속성을 사용할 수 있습니다.
        is List<*> -> println(input.size)  // input이 List이면 자동으로 캐스팅되어 size 속성을 사용할 수 있습니다.
    }
}

위와 같이 when 표현식에서 타입을 체크하면 해당 블록 내에서 변수의 타입이 자동으로 캐스팅되어 해당 타입의 속성이나 메서드를 쉽게 활용할 수 있습니다.

결론

코틀린의 스마트 캐스트는 코드를 간결하고 가독성있게 작성할 수 있도록 도와주는 유용한 기능입니다. 타입 체크와 캐스팅을 자동으로 처리하여 개발자가 번거로운 작업을 줄여줍니다.

자세한 내용은 코틀린 공식 문서를 참고할 수 있습니다.