객체 컨텍스트 내에서 코드 블록을 실행할 수 있도록 도와주는 유틸리티 함수
주로 코드 간결성, 객체 구성, 임시 컨텍스트 사용 등에 활용
코틀린 스코프 함수에는 let
, run
, with
, apply
, also
모두 람다를 인자로 받는 공통점이 있는 반면, 주요 차이점은
수신 객체를 어떻게 참조하는가?
→ this
(암시적으로 멤버 접근) or it
(명시적으로 참조)
람다 결과로 무엇을 반환하는가?
→ 객체 자신 or 람다 결과
let
it
**으로 참조
val str: String? = "Hello"
val length = str?.let {
println("문자열: $it")
it.length
}
run
this
**로 참조