-
[안드로이드] 코틀린 기본 문법 - 7(형변환 + Java와의 차이)Coding/Android 2019. 6. 24. 16:22
기본적으로 Kotlin에서도 Java와 비슷하게 정의된 함수로써 형변환을 실시합니다.
val a: Long = 34 val b: Int = a.toInt() // Long을 Int로 강제 형변환
- toByte() : Byte로 변환
- toShort() : Short로 변환
- toInt() : Int로 변환
- toLong() : Long으로 변환
- toFloat() : Float으로 변환
- toDouble() : Double로 변환
- toChar() : Char로 변환
- String의 형변환은 Java와 동일
여기서 Java와의 차이점은, 숫자형 자료형간의 자유로운 캐스팅이 안된다는 것입니다.
이게 무슨소리냐면 Java에서는
int x = 42; double y = x;
다음과 같은 코드도 문제없이 형변환이 가능합니다. 하지만 Kotlin에서는
val x: Int = 42 val y: Double = x // Error
이러한 코드는 컴파일 에러가 발생합니다.
그 이유는 Kotlin에서 Int는 Double의 서브 타입이 아니기 때문입니다
서로 관계가 없는 타입이기 때문에 암묵적으로 캐스팅이 되지 않는 것입니다.
Java의 경우 캐스팅을 이용하여 암묵적으로 형변환이 가능하지만 Kotlin에서는 Int와 Double은 아무런 관계가 없는 타입이기 때문에 반드시 toDouble() 메소드를 거쳐 형변환이 되어야 하는 것입니다.
val x: Int = 42 val y: Double = toDouble(x) // Ok
'Coding > Android' 카테고리의 다른 글
[안드로이드 - 코틀린] Timer 사용 방법 (0) 2019.06.27 [안드로이드] 레이아웃 수직/수평 n% 위치에 배치하기 (0) 2019.06.27 [안드로이드 - 코틀린] Intent로 데이터 전달하기 (4) 2019.06.23 [안드로이드 - 코틀린] 상위 액티비티 지정하기 (0) 2019.06.23 [안드로이드 - 코틀린] Anko 라이브러리를 이용한 Intent (0) 2019.06.23