반응형
범위 지정 함수 (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 == 리스트
}
반응형
'언어 > Kotlin' 카테고리의 다른 글
[Kotlin] 코틀린 enum 클래스 (1) | 2025.05.11 |
---|---|
[Kotlin] 코틀린 데이터 클래스 componentN (0) | 2025.05.10 |
[Kotlin] 코틀린 가변인자 vararg 사용법 (0) | 2025.05.10 |
[Kotlin] 코틀린 람다 표현식 (후행 람다) (0) | 2025.04.30 |
[Kotlin] 코틀린 JecPack Compose Surface (0) | 2025.04.29 |