Scope Function : 코드 블록 내에서 객체 범위 조작
//obj = null
obj?.let -> 'let' 블록이 실행되지 않음
obj.let -> 'let' 블록이 실행되지만 객체가 null이기 NullPointerException 이 발생함
obj = null
obj?.also { println("${it}") }
obj.also { it.. } //NullPointerException 발생
obj = null
obj = "value" ?: run { //obj가 null일 경우 실행 }
with(person) {
println("Name: $name, Age: $age")
// 다른 작업들...
}
data class Person(var name: String, var age: Int)
val person = Person("Alice", 30).apply {
age = 31 // 객체 내의 속성을 설정
}