30
확장 함수
여러분이 필요한 모든 것을 ... 거의 다 제공하는 라이브러리를 발견했다고 하자. 이 라이브러리에 멤버 함수만 한두 가지 더 있으면 문제를 완벽하게 해결할 수 있을 것 같다.
하지만 이 라이브러리는 여러분의 코드가 아니다. 소스 코드에 접근할 수도 없고, 소스 코드 변경을 마음대로 제어할 수도 없다. 수정한 내용을 새로운 버전이 나올 때마다 다시 반복해서 적용해야 한다.
코틀린 확장 함수(extension function)는 기존 클래스에 멤버 함수를 추가하는 것과 같은 효과를 낸다. 확장할 대상 타입은 수신 객체 타입(receiver type)이라고 한다. 확장 함수를 정의하기 위해서는 함수 이름 앞에 수신 객체 타입을 붙여야 한다.
fun 수신타입.확장함수() { ... }