[kotlin] 코틀린에서의 타입 변환 함수

코틀린은 자바와 마찬가지로 다양한 타입 변환 함수를 제공합니다. 이러한 타입 변환 함수들을 사용하면 간편하게 타입을 변환할 수 있습니다. 이번 글에서는 코틀린에서 주로 사용되는 타입 변환 함수들에 대해 알아보겠습니다.

1. as 문법

as 문법은 변수를 다른 타입으로 변환하는 가장 기본적인 방법입니다. as 키워드 뒤에 변환하려는 타입을 써주면 됩니다.

val num: Int = 10
val str: String = num as String // 컴파일 에러 발생

위의 코드에서는 num 변수의 값을 String 타입으로 변환하려고 하지만, Int 타입을 String 타입으로 변환할 수 없기 때문에 컴파일 에러가 발생합니다.

2. toXXX()

toXXX() 함수는 기본 타입 사이에서 변환하는 함수입니다. 다음과 같은 변환 함수들이 제공됩니다.

val num: Int = 10
val str: String = num.toString()  // "10"

위의 예제에서는 toString() 함수를 사용하여 Int 타입을 String 타입으로 변환합니다.

3. as? 문법

as? 문법은 안전한 타입 변환을 위해 사용됩니다. as? 키워드를 사용하면 타입 변환이 실패하더라도 예외가 발생하지 않고 null을 반환합니다.

val str: String? = null
val num: Int? = str as? Int  // num은 null

위의 코드에서는 str 변수를 Int 타입으로 변환하려고 합니다. 하지만 strnull 값이기 때문에 변환에 실패하고 num 변수에는 null이 할당됩니다.

4. 자동 타입 변환

코틀린은 상위 타입으로의 자동 타입 변환을 지원합니다. 예를 들어 슈퍼클래스 타입 변수에 서브클래스 타입의 객체를 대입할 수 있습니다.

open class Animal
class Dog: Animal()

val animal: Animal = Dog() // 서브클래스 타입 객체를 상위클래스 타입 변수에 대입

위의 코드에서는 Dog 클래스를 상속받는 Animal 클래스와 Dog 클래스를 정의하고 있습니다. Dog 클래스의 객체를 Animal 타입의 변수에 대입할 수 있습니다. 이렇게 되면 변수의 타입은 Animal이지만, 실제로는 Dog 객체를 가리키게 됩니다.

참고 자료

  1. Kotlin 타입 변환 문법 공식 문서