728x90
object itself
call chain에 속할 수 있다. / return문에도 속할 수 있다.
.also{
}
.apply{
}
.also{
}
lambda
value의 값을 지정하는 데에 쓸 수 있다. 그 안에서 chain operation으로 쓸 수 있다.
val numbers = mutableListOf("one", "two", "three")
val countEndsWithE = numbers.run {
add("four")
add("five")
count { it.endsWith("e") }
}
apply
context object : this
return : object itself
리턴이 필요없고 수신 객체 자신을 반환하는 경우 사용한다.
ex) 객체 초기화
val adam = Person("Adam").apply {
age = 32
city = "London"
}
with
context object : this
return : lambda
Non-nullable이고 결과가 필요없는 경우에 사용한다.
let
context object : it
return : lambda
non-null인 값에만 사용한다.
- 지정된 값이 null이 아닌 경우에 코드를 실행해야 하는 경우 -> if (객체 != null) 대신 사용할 수 있다.
getNullablePerson()?.let {
// null 이 아닐때만 실행됩니다.
promote(it)
}
- 지역 변수의 범위를 제한하는 경우
also
context object : it
return : object itself
수신 객체 반환할 때 사용
ex) 프로퍼티 할당 전 데이터 유효성 검사
run
context object : this
return : lambda
어떤 값을 계산하거나 지역변수의 범위를 제한하기 위해 사용
'Kotlin' 카테고리의 다른 글
Kotlin 클래스 위임 (0) | 2021.04.09 |
---|---|
Kotlin Delegated Property (0) | 2021.04.01 |
Kotlin field (0) | 2021.04.01 |
Kotlin 지연 초기화 lateinit / by lazy (0) | 2021.04.01 |
Kotlin map flatmap (0) | 2021.03.31 |