5장에서 연산자 오버로딩, 타입 안전 빌더와 Kotlin에서 DSL을 만드는 법에 대해 공부했다.
operaotr
수정자를 통해 연산자들의 동작을 재정의할 수 있는 기능이다.invoke
, 인덱싱된 접근을 가능하게 해주는 []
연산자가 있다.with
, buildString
, apply
처럼 리시버가 있는 명명된 함수타입을 사용한 빌더? 이다.with
은 리시버와 그 리시버의 함수들을 인자로 받아서 전달받은 함수들을 호출하고 해당 함수가 반환한 값을 반환한다.buildString
은 StringBuilder
의 함수들을 인자로 받아서 호출한 후 결과로 생성된 String
을 반환한다.apply
는 확장 함수이며, 리시버의 함수들을 인자로 받아서 해당 함수들이 호출된 리시버 타입 객체를 반환한다.@DslMarker
어노테이션과 중위 함수, 연산자 오버로딩, 타입 안전 빌더를 통해 DSL을 간단하게 생성할 수 있다.