매일매일 자주자주 쓰이는 스코프 함수를 정리해봤다. 자주 쓰이는 만큼 잘 정리해서 필요할 때 써먹어야겠다 .
코틀린에는 객체의 범위를 제한하고 간결하게 사용할 수 있도록 도와주는 스코프 함수가 있습니다.
주로 사용되는 5가지 함수는 let
, run
, with
, apply
, also
입니다.
함수 | 반환값 | 참조 방식 | 주 용도 |
---|---|---|---|
let | 람다 결과 | it | null 체크, 변환 |
run | 람다 결과 | this | 객체 초기화, 연산 |
with | 람다 결과 | this | 객체를 인자로 받아 사용 |
apply | 자기 자신 | this | 객체 설정, 변경 |
also | 자기 자신 | it | 로깅, 디버깅 |
1️⃣ let- null 체크 및 변환
val name: String? = "Kotlin"
name?.let {
println("이름 길이: ${it.length}")
}
2️⃣ run - 객체 초기화 및 연산
val person = Person("Alice", 25)
val length = person.run { name.length }
println("이름 길이: $length")
3️⃣ with - 객체를 인자로 사용
val person = Person("Alice", 25)
with(person) {
println("이름: $name, 나이: $age")
}
4️⃣ apply - 객체 설정 후 반환
val person = Person().apply {
name = "Bob"
age = 30
}
5️⃣ also - 디버깅, 로깅
val numbers = mutableListOf(1, 2, 3).also {
println("초기 리스트: $it")
}
numbers.add(4)
println("변경된 리스트: $numbers")
🚀 스코프 함수 선택 가이드
객체 변환할 때 → let, run
객체 설정할 때 → apply, also
단순 실행할 때 → with