Scope 함수
kotlin의 Scope 함수는 객체를 사용할 때 Scope:범위를 일시적으로 만들어서
property나 함수를 처리하는 용도로 사용되는 함수이다.
Scope 함수의 종류
- let
- with //사용해볼 때 알아보기
- run //사용해볼 때 알아보기
- apply
- also //사용해볼 때 알아보기
let
- let은 타입 T의 확장 함수이다.
- Null 체크 시에 자주 사용된다.
-
public inline fun <T, R> T.let(block: (T) -> R): R { contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) } return block(this) }
- 자신을 매개변수로 받아서 결과값을 반환한다.
apply
- apply는 T의 확장 함수이다.
- 전달받은 객체의 초기화를 할 때 주로 사용한다.
-
public inline fun <T> T.apply(block: T.() -> Unit): T { contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) } block() return this
- block 함수의 입력을 람다 리시버( T.() )로 받게 되면
- 블록 안에서 객체의 프로퍼티를 호출할 때 it이나 this를 사용하지 않아도 된다.
- 자신인 T를 반환한다.
//사용안햇을때
user.name = "jiwon"
user.age = 26
//apply사용
val user2 = User().apply {
name = "jiwon"
age = 26