부록 D. 코틀린 1.1과 1.2, 1.3 소개
KOTLIN IN ACTION 부록 D를 요약한 내용입니다.
코틀린 1.1
타입 별명
// 콜백 함수 타입에 대한 타입 별명
typealias MyHandler = (Int, String, Any) -> Unit
// MyHandler를 받는 고차 함수
fun addHandler(h:MyHandler) { ... }
// 컬렉션의 인스턴스에 대한 타입 별명
typealias Args = Array<String>
fun main(args:Args) { ... }
// 제네릭 타입 별명
typealias StringKeyMap<V> = Map<String, V>
val myMap: StringKeyMap<Int> = mapOf("One" to 1, "Two" to 2)
// 중첩 클래스
class Foo {
class Bar {
inner class Baz
}
}
typealias FooBarBax = Foo.Bar.Baz봉인 클래스와 데이터 클래스
람다 파라미터에서 구조 분해 사용
프로퍼티 접근자 인라이닝
코틀린 1.2
애노테이션의 배열 리터럴
지연 초기화(lateinit) 개선
경고를 오류로 처리
이넘 원소 안의 클래스는 내부 클래스로
표준 라이브러리
컬렉션
JVM 백엔드 변경
생성자 호출 정규화
자바 디폴트 메소드 호출
코틀린 1.3
컨트랜트(Contract, 계약)
When의 대상을 변수에 포획
인터페이스의 동반 객체 있는 멤버를 @JvmStatic이나 @JvmField로 애노테이션
isNullOrEmpty와 orEmpty 확장을 여러 클래스에 추가
배열 원소 복사 확장 함수 copyInfo() 추가
Last updated