
188
자바에서 코틀린으로
장을 파일 내에서만 쓸 수 있게 정의하거나 로직을 더 쉽게 작성하기 위해 함수를 확장으로 리
팩터링했다. 그리고 이런 확장의 이름이 그와 동등한 함수의 의도를 흐리는 이름보다 더 간결
하다는 사실도 깨달았다. 그 결과 애플리케이션 로직을 간결하게 만들기 위해 더 많은 확장을
작성했다. 비공개 확장이 다른 곳에서도 유용하다는 사실이 드러나곤 했고, 그럴 때마다 비공
개 확장을 더 쉽게 공유할 수 있는 공통 모듈로 옮겼다. 이를 통해 애플리케이션의 다른 부분에
서도 선택적인 정보를 더 쉽게 쓸 수 있게 됐고, 그에 따라 더 많은 확장을 작성하게 됐으며, 다
시 그에 따라 애플리케이션 로직이 더 간결해지는 등 이런 일이 반복됐다.
확장이 제
3
자가 작성한 타입을 확장하기 위한 방식으로 광고되지만, 확장이 제공하는 간결성
과 타입 시스템이 제공하는 널 가능성은 우리 자신의 타입에 대해서도 확장을 더 많이 정의하
도록 한다. 코틀린의 결 중 일부분은 이런 특성이 서로 엮여서 우리가 프로그래밍을 진행하는
길을 평탄하게 해 준다.
10.7
널이 될 수 있는 수신 객체
메서드 호출과 함수 호출의 큰 차이는
null
참조를 취급하는 방법에 있다.
null
인 참조가 있
어도 이 참조에 메시지를 보낼 수는 없다. 왜냐하면 메시지를 전달할 대상이 없기 때문이다. ...