코틀린에는 객체의 이름을 일일이 반복하지 않고, 특정 블록(스코프) 안에서 우아하게 코드를 묶어서 처리할 수 있도록 도와주는 5가지 마법의 함수(let, apply, run, with, also)가 있습니다.
이 함수들을 사용하면 객체의 초기화 셋팅을 하나로 묶거나, null 체크 로직을 간소화하는 등 코틀린 특유의 가독성 높고 세련된 체이닝 코드를 작성할 수 있습니다.
스코프 함수를 쓴다는 것은 특정 객체 위에 '조명(Scope)'을 켜는 것과 같습니다. 조명이 켜진 중괄호 {} 내부에서는 계속 robot.name, robot.battery 처럼 주어(robot)를 반복할 필요 없이, 바로 name, battery 처럼 핵심 부품만 만지면서 조립할 수 있습니다.
| 함수 | 수신 객체 참조 | 반환값 | 주요 사용 목적 |
|---|---|---|---|
| let | it (생략 불가) |
람다의 마지막 줄 | ?.let 형태로 Null 체크 후 무언가 실행할 때 |
| apply | this (생략 가능) |
객체 자신 | 객체 생성과 동시에 내부 프로퍼티들을 쫙 셋팅할 때 |
| run | this (생략 가능) |
람다의 마지막 줄 | 객체 초기화와 동시에 계산 결과를 반환받아야 할 때 |