Wook No.1
Scope Functions(let, with, run apply, also) 본문
객체를 사용할 때 Scope(범위, 영역) 생성하여 속성이나 함수를 처리하는 용도로 사용되는 함수
https://kotlinlang.org/docs/scope-functions.html#takeif-and-takeunless
1. let
T의 확장함수이기 때문에 non-null 일 때에만 실행할 수 있다.
let 함수를 사용하면 객체의 상태를 변경할 수 있다.
fun <T, R> T.let(block: (T) -> R): R
Person("Alice", 20, "Amsterdam").let {
println(it)
it.moveTo("London")
it.incrementAge()
println(it)
}
2. with
fun <T, R> with(receiver: T, block: T.() -> R): R
3. run
확장함수이기 때문에 non-null 일 때에만 실행할 수 있다
T.()
fun <T, R> T.run(block: T.() -> R): R
4. apply
블럭에서 return 값을 받지 않으며 자기 자신인 T를 반환
fun <T> T.apply(block: T.() -> Unit): T
val adam = Person("Adam").apply {
age = 20
city = "London"
}
5. also
fun <T> T.also(block: (T) -> Unit): T
'Kotlin' 카테고리의 다른 글
코루틴, Coroutine (0) | 2021.05.24 |
---|
Comments