[kotlin] 스코프 함수 종류와 사용 방법

코틀린은 스코프 함수라고 불리는 특별한 유형의 함수를 제공하여 객체의 컨텍스트에서 코드 블록을 실행하거나 연속적인 함수 호출을 지원합니다. 각 스코프 함수는 다양한 용도로 사용되며 코드를 보다 명확하고 간결하게 만들어 줍니다. 여기서는 코틀린의 네 가지 스코프 함수에 대해 알아보고, 각각의 사용 방법과 특징을 살펴보겠습니다.

1. apply

apply 함수는 객체의 컨텍스트에서 코드 블록을 실행하고 객체 자체를 반환합니다. 이 함수는 주로 객체의 초기화 또는 구성을 수행할 때 사용됩니다.

val person = Person().apply {
    name = "Alice"
    age = 30
}

2. also

also 함수는 객체의 컨텍스트에서 코드 블록을 실행하고 같은 객체를 반환합니다. also 함수는 객체의 속성을 변경하지 않고 로깅, 부가 동작, 또는 추가적인 작업을 수행할 때 사용됩니다.

val result = "Hello, Kotlin!".also {
    println("Length of the string is ${it.length}")
}

3. let

let 함수는 non-null 값을 가진 객체에 대해 코드 블록을 실행하고 결과 값을 반환합니다. 주로 null 체크 후에 안전하게 작업을 수행할 때 사용됩니다.

val name: String? = "Bob"
val message = name?.let {
    "Hello, $it"
} ?: "Name is null"

4. run

run 함수는 수신 객체를 식으로 전달받아 코드 블록을 실행하고 그 결과를 반환합니다. 주로 객체의 함수를 연속적으로 호출할 때 사용됩니다.

val message = "Hello, Kotlin!".run {
    toUpperCase()
}

스코프 함수는 코틀린에서 객체 지향 프로그래밍을 더 효율적으로 작성할 수 있도록 도와줍니다. 각 함수의 특징과 용도를 잘 이해하고 적합하게 활용하는 것이 중요합니다.