Kotlin 자료형 확인과 형변환

timothy jeong·2021년 10월 21일
0

코틀린

목록 보기
2/20

is 와 !is

Smart casts

kotlin 자료형에서 암묵적인 형변환을 지원하지 않으므로 명시적 형변환을 써야한다고 말했다. 하지만 is 체크가 있는 경우 컴파일러가 형변환자를 삽입하므로 굳이 개발자가 형변환자를 삽입할 필요가 없다.

fun demo(x: Any) {
    if (x is String) {
    	// val str = x as String
        // print(str.length)
        print(x.length) // Smart cast 로 위의 형변환 작업이 필요없음
    }
}

위 코드에서 x 는 Any 타입으로 어떤 자료형도 올 수 있다. 따라서 if 이하의 x.length 를 실행하려면 val str = x as String 이런 명시적 형변환이 있어야 할 것 같지만, 컴파일러는 이미 if (x is String) 구문에서 x 가 String 형이라는 것을 확인 했으므로 굳이 개바랒가 명시적으로 형변환을 해줄 필요없다는 것이다.

profile
개발자

0개의 댓글