[kotlin] 스코프 함수를 사용하여 객체 초기화하기
Kotlin에서는 스코프 함수라는 유용한 기능을 제공하여 객체를 초기화하고 사용할 수 있습니다. 스코프 함수는 let
, run
, with
, apply
, also
다섯 가지가 있으며, 각각의 사용 사례와 특징을 알아보겠습니다.
1. let
let
함수는 nullable 객체를 다룰 때 매우 유용합니다. 객체가 null이 아닌 경우에만 수행할 작업을 정의할 수 있습니다.
val name: String? = "John"
name?.let {
println("Name is $it")
}
2. run
run
함수는 receiver object를 활용하여 객체의 속성이나 함수에 바로 접근할 수 있습니다.
val person = Person("John", 30)
val message = person.run {
"My name is $name and I am $age years old"
}
println(message)
3. with
with
함수는 run
함수와 비슷하지만, receiver object 대신에 인자로 전달된 객체를 사용합니다.
val person = Person("John", 30)
val message = with(person) {
"My name is $name and I am $age years old"
}
println(message)
4. apply
apply
함수는 객체의 초기화와 설정에 사용됩니다. 객체를 생성하고 그 안의 속성을 설정한 후, 해당 객체를 반환합니다.
val person = Person("John", 30).apply {
address = "123 Main St"
email = "john@email.com"
}
5. also
also
함수는 객체를 처리한 후에 원본 객체를 반환합니다. 객체의 상태를 변경하지 않고 로깅이나 부가적인 작업에 사용됩니다.
val numbers = mutableListOf(1, 2, 3)
numbers.also {
println("Initial numbers: $it")
}.add(4)
스코프 함수를 적절히 활용하면 Kotlin에서 객체를 초기화하고 조작하는 작업을 더욱 간편하게 처리할 수 있습니다.