[kotlin] 코틀린 스코프 함수를 사용하여 객체의 상태를 변경하기

코틀린은 스코프 함수 라고 불리는 특별한 함수들을 제공하여 객체의 상태를 변경하거나 사용할 때 코드를 간결하게 작성할 수 있게 합니다. 스코프 함수는 apply, also, let, run, with 등이 있으며, 이들은 서로 다른 방식으로 객체를 조작하고 그 결과값을 반환합니다.

이번 글에서는 applylet 함수를 사용하여 객체의 상태를 변경하는 예제 코드를 살펴보겠습니다.

apply 함수

apply 함수는 수신 객체를 확장하고, 객체 자신을 반환합니다. 이 함수는 주로 객체의 초기화 또는 설정 시 사용됩니다.

class Person(var name: String, var age: Int)

fun main() {
    val person = Person("Alice", 30).apply {
        age += 1
    }
    println("Name: ${person.name}, Age: ${person.age}") // 출력: Name: Alice, Age: 31
}

위 예제 코드에서 apply 함수는 Person 객체의 age를 1 증가시키고, 변경된 객체를 person에 할당합니다.

let 함수

let 함수는 수신 객체를 인자로 받아 람다 함수를 실행하고, 람다의 결과값을 반환합니다. 이 함수는 주로 null 체크나 연산 결과를 다른 작업에 활용하는 경우에 사용됩니다.

fun main() {
    val name: String? = "Bob"
    val message = name?.let {
        "Hello, $it"
    }
    println(message) // 출력: Hello, Bob
}

위 예제 코드에서 let 함수는 name이 null이 아닐 경우에만 람다를 실행하여 message에 할당합니다.

이와 같이 코틀린 스코프 함수를 사용하면 객체의 상태를 변경하거나 사용할 때 코드를 보다 간결하게 작성할 수 있으며, 가독성을 높일 수 있습니다.

참고 자료