코틀린에서는 스코프 함수라는 특별한 함수가 제공됩니다. 스코프 함수는 객체의 속성에 접근하거나 메서드를 호출하는 등의 작업을 보다 간결하게 처리할 수 있는 기능을 제공합니다.
스코프 함수에는 다음과 같은 종류가 있습니다.
let 함수는 null이 아닌 객체에 대해서만 수행되며, 객체를 파라미터로 받습니다. 람다식 내에서는 해당 객체를 it 키워드로 참조할 수 있습니다. 반환값은 람다식의 마지막 구문의 결과값입니다.
val name: String? = "John Doe"
name?.let {
println(it.length) // name이 null이 아닐 때만 실행
}
also 함수는 객체를 파라미터로 받고, 람다식 내에서 해당 객체를 it 키워드로 참조할 수 있습니다. 반환값은 해당 객체 자체입니다.
val list = mutableListOf<String>()
list.also {
println("List has been created.")
}.add("apple")
apply 함수는 객체를 파라미터로 받고, 람다식 내에서 해당 객체를 this 키워드로 참조할 수 있습니다. 반환값은 해당 객체 자체입니다.
val person = Person("John Doe").apply {
age = 30
gender = "Male"
}
run 함수는 let 함수와 유사하지만, 해당 객체를 this 키워드로 참조할 수 있습니다. 반환값은 람다식의 마지막 구문의 결과값입니다.
val result = "John Doe".run {
println(length)
length
}
with 함수는 객체를 파라미터로 받고, 람다식 내에서 해당 객체를 this 키워드로 참조할 수 있습니다. 반환값은 람다식의 마지막 구문의 결과값입니다.
val person = Person("John Doe")
with(person) {
age = 30
gender = "Male"
}