[kotlin] 스코프 함수의 종류와 사용법(let, run, with, apply, also)
Kotlin은 다양한 스코프 함수를 제공하여 코드를 간결하게 작성하고 가독성을 높일 수 있습니다. 각 스코프 함수는 특정한 상황에 맞게 사용됩니다. 이번 포스트에서는 다섯 가지 주요 스코프 함수(let, run, with, apply, also)에 대해 알아보겠습니다.
1. let
let
은 null이 아닌 객체에서 코드 블록을 실행하고 새로운 값을 반환할 수 있습니다. 예를 들어:
val result = nullableValue?.let {
// null이 아닌 경우에만 실행
it.doSomething()
"result"
}
2. run
run
은 수신 객체의 함수를 호출하는 것과 같이 동작합니다. 블록 내에서 this
를 사용하여 수신 객체에 접근합니다.
val result = "hello".run {
// 수신 객체인 "hello"에 대해 동작
this.toUpperCase()
}
3. with
with
함수는 수신 객체를 함수의 인자로 전달하여 블록 내에서 객체의 멤버에 직접 접근할 수 있습니다.
val result = with(person) {
// person 객체의 멤버에 직접 접근
"Name: $name, Age: $age"
}
4. apply
apply
는 수신 객체를 초기화한 후 추가적인 설정을 하는 데 사용됩니다. 블록 내에서 수신 객체를 this
로 참조할 수 있습니다.
val person = Person().apply {
// 수신 객체에 추가적인 설정
name = "John"
age = 30
}
5. also
also
는 객체를 이어가는 작업을 수행할 때 사용됩니다. 주로 로깅이나 중간 결과를 확인할 때 유용합니다.
val result = "hello".also {
// 작업 수행 후 이어가는 작업 가능
println("Length: ${it.length}")
}
이렇게 다섯 가지의 스코프 함수를 사용하여 코드를 더 읽기 쉽고 유연하게 작성할 수 있습니다. 이러한 스코프 함수들은 Kotlin에서 코드를 더 간결하게 작성하는 데 도움을 줍니다.
참고 자료: Kotlin Documentation - Scope Functions