코틀린은 자바와 마찬가지로 다양한 타입 변환 함수를 제공합니다. 이러한 타입 변환 함수들을 사용하면 간편하게 타입을 변환할 수 있습니다. 이번 글에서는 코틀린에서 주로 사용되는 타입 변환 함수들에 대해 알아보겠습니다.
1. as 문법
as
문법은 변수를 다른 타입으로 변환하는 가장 기본적인 방법입니다. as
키워드 뒤에 변환하려는 타입을 써주면 됩니다.
val num: Int = 10
val str: String = num as String // 컴파일 에러 발생
위의 코드에서는 num
변수의 값을 String
타입으로 변환하려고 하지만, Int
타입을 String
타입으로 변환할 수 없기 때문에 컴파일 에러가 발생합니다.
2. toXXX()
toXXX()
함수는 기본 타입 사이에서 변환하는 함수입니다. 다음과 같은 변환 함수들이 제공됩니다.
toInt()
,toLong()
,toFloat()
,toDouble()
toByte()
,toShort()
,toChar()
,toBoolean()
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
타입으로 변환하려고 합니다. 하지만 str
은 null
값이기 때문에 변환에 실패하고 num
변수에는 null
이 할당됩니다.
4. 자동 타입 변환
코틀린은 상위 타입으로의 자동 타입 변환을 지원합니다. 예를 들어 슈퍼클래스 타입 변수에 서브클래스 타입의 객체를 대입할 수 있습니다.
open class Animal
class Dog: Animal()
val animal: Animal = Dog() // 서브클래스 타입 객체를 상위클래스 타입 변수에 대입
위의 코드에서는 Dog
클래스를 상속받는 Animal
클래스와 Dog
클래스를 정의하고 있습니다. Dog
클래스의 객체를 Animal
타입의 변수에 대입할 수 있습니다. 이렇게 되면 변수의 타입은 Animal
이지만, 실제로는 Dog
객체를 가리키게 됩니다.