언어/Kotlin

[Kotlin] 코틀린 범위 지정 함수 let, apply, also, run, with

청포도막대사탕 2025. 5. 11. 13:37
반응형

범위 지정 함수 (Scope Functions)

객체를 특정 범위인 scope안에서 그 객체에 대한 작업을 수행하게 해주는 함수

해당 객체를 수신객체로 표현

let, apply, also, run, with 다섯 종류가 있음

각각의 함수에 따라 용도가 다르며, 주로 편의성을 위해 사용

 

  수신 객체를 this로 접근 수신객체를 it으로 접근
수신객체를 return apply also
scope의 마지막 줄을 return run, with let

 

1. let

val email: String? = user.email
email?.let {                   // null이 아닐 때만 아래 블록 실행
    sendEmail(it)             // it == email
}

위와 같이 사용하며 주로 null-safe 처리를 위해 사용

 

2. apply

객체를 구성할 때 사용

객체 자신이 리턴됨

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

 

3. run

객체에 대한 어떤 계산을 진행하고 결과를 반환할 때 사용

val result = "Kotlin".run {
    length + 5  // this == "Kotlin"
}
println(result)  // 11

 

4. with

run과 똑같이 동작하지만 객체를 파라미터로 받음

객체에 대한 여러 작업을 수행할 때 사용

with(binding.textView) {
    text = "Welcome"
    textSize = 20f
    setTextColor(Color.BLUE)
}

 

5. also

객체를 수정하지 않고 중간값을 확인할 때 사용

val list = mutableListOf("A", "B", "C").also {
    Log.d("ListLog", "리스트 초기 상태: $it")  // it == 리스트
}
반응형