2019-12-31 TIL

2019-12-31

Kotlin as operator

https://kotlinlang.org/docs/reference/typecasts.html#unsafe-cast-operator

val x: String = y as String

as 는 타입 캐스팅 연산자임

위 코드에서 y를 String 타입으로 캐스팅해 x에 할당한다

그런데 y가 만약 null이 들어온다면, String은 nullable 타입이 아니므로(String?이 아니므로) exception이 발생한다.

그래서 “Unsafe” cast operator 라고 하며 null 허용을 다음과 같이 추가하거나

val x: String? = y as String?

아니면

val x: String? = y as? String

as?를 사용한다. 이건 “Safe” (nullable) cast operator라고 한다.

y에 null이 들어오면 null을 x에 할당한다. (그래서 x의 타입은 String?이 되어야 한다)


Minchang Kim
Minchang Kim
웹/앱 개발자 김민창입니다! 좋은 하루 되세요!