Let (2) 썸네일형 리스트형 코틀린(Kotlin) - 타입 시스템 as?, !!, let, lateinit 안전한 캐스트 "as?" 기본적으로 "as" 연산자는 대상 값을 as로 지정한 타입으로 캐스트 하며, 해당 타입으로 바꿀 수 없으면 ClassCastException이 발생하게 됩니다. 이럴 경우 is 연산자를 통해 대상 값이 해당 타입으로 변환 가능한 타입인지 체크해야 하지만 코틀린에서는 훨씬 더 간결한 기능으로 "as?" 연산자를 제공합니다. "as?" 연산자는 어떤 값을 지정한 타입으로 캐스트를 하고, 만약 대상 타입으로 캐스트 할 수 없으면 null을 반환하게 됩니다. /* 안전한 캐스트를 사용해 equals 구현하는 예제 */ class User(val id: String) { override fun equals(o: Any?): Boolean { val otherUser = o as? User.. 코틀린(Kotlin)의 Scope Function(let, with, run, apply, also) 정리 Scope Function 이라는 함수명에서 알 수 있듯이, 이 함수들을 람다식을 이용해서 호출하면 일시적인 Scope(범위)가 생기게 되고, 이 범위 안에서는 전달된 객체에 대해 "it" 또는 "this" 라는 Context Object를 통해서 접근하게 됩니다. 두 가지 차이점 Scope Function에는 서로 다른 두 가지 주요 차이점이 있습니다. - Context Object를 참조하는 방법 (this, it) - Return value Context Object: this or it Scope Function 람다식 내에서 Context Object는 실제 객체명 대신, "it" 또는 "this" 키워드로 접근하게 됩니다. class Person (var name: String, var age.. 이전 1 다음