이제 진입점을 제외한 모든 함수가 단일식 확장 함수다. 수신 객체로 삼을 만한 자연스러운 파
라미터가 없어서
generate
를 확장 함수로 만들지는 못했다. 이 연산은
Reader
나
Writer
에
속한 자연스러운 연산처럼 보이지도 않는다.
20
장에서 이 코드를 리팩터링하면 이런 상황이
달라질지도 모른다. 그때 다시 살펴보자.
10.11
다음으로 나아가기
확장 함수와 프로퍼티는 코틀린 언어에서 무명 영웅과 같은 존재다. 이들을 사용하는 표준적인
용례는 우리가 직접 변경할 수 없는 타입에 연산을 추가한다.
하지만, 코틀린 언어 기능과 도구의 조합은 우리 스스로 작성한 타입에 대한 확장을 우리가 작
성하도록 강력하게 권장한다. 코틀린 안전한 호출 연산자를 사용하면 널이 될 가능성이 있는
참조를 파라미터로 넘길 때보다 확장 함수를 사용할 때 더 편리하게 호출할 수 있다. 독립적인
제네릭 함수의 타입은 상속 가능한(
open
인) 메서드로는 표현하지 못하는 수신 객체와 확장
함수의 결과 타입 사이의 관계를 표현할 수 있다. 인텔리
J
의 자동완성 기능은 어떤 값에 대해
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.