2019-12-31
as
operatorhttps://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?이 되어야 한다)