반응형
스코프 펑션(Scoepe Function)
선택기준
- 스콥펑션은 크게 두가지 기준으로 나눈다.
- Context Object를 참조하는 방법 (this, it)
- Return value
let
- 객체 결과값에 하나 이상의 함수를 호출하는 경우 사용
- 긴 변수명 대신 it 으로 받을수 있다는 장점이 있음. 다만 이경우 run 이 더 좋을수 있음
- nullable 한 객체에 대해서 unpack 할수 있어 safety call 을 할수 있음
run
- let과 유사하나 this 로 받는다는 점이 다르다.
- this 로 받기때문에 context object 를 생략가능해서 간결해진다.
- let 과 마찬가지로 nullable 객체에 대한 safety call 할수 있다.
with
- run 처럼 this 로 받는다.
- run 처럼 safety call 할수 없어 많이 사용하지 않는다.
apply, also
- apply, also 가 컨텍스트 오브젝트를 리턴
- 따라서 체인형식으로 계속해서 연결해 쓸수 있다.
- also 같은 경우는 체인 중간에 로그같은것을 찍기 좋다.
- apply 는 최초 객체생성과 동시에 여러 초기 작업을 수행할때 좋다.
let vs run
- 둘다 널체크하면서 특정 작업을 수행하기에 좋다.
- let 은 it 으로 받거나 특정 이름으로 받을수 있으므로, 내부적으로 객체값을 구분하면서 특정 작업을 연속적으로 호출한다거나 할때 run 보다 나은점이 있다.
- run 은 this 로 받아 생략가능하기 때문에, 람다블럭 내부에서 컨텍스트 오브젝트가 무엇인지 표시 하지 않아도 되는(명확한 경우) 사용하기 좋다.
아래 경우를 보면 run 보다는 let 이 훨씬 나은 선택일 것이다.
반응형
'코틀린 & Java > 코틀린인액션' 카테고리의 다른 글
Kotlin Plus 산술연산자 오버로딩 (0) | 2023.05.09 |
---|---|
코틀린 원시타입(Kotlin Primitive Type) (0) | 2023.04.06 |
코틀린 타입 종류 Null가능성 (0) | 2023.03.27 |
[Kotlin] 람다에 대해 알아보자(2) (0) | 2023.03.23 |
[Kotlin] 람다에 대해 알아보자 (0) | 2023.03.23 |