반응형
예전에 코틀린을 공부하면서 이전에 자바로 만든 앱을 코틀린으로 변환하는 작업을 했었는데 이때 코틀린의 코드가 훨씬 깔끔하다고 느꼈던 부분이 바로 이 범위 지정 함수의 존재였다.
범위 지정함수는 apply, with, let, also, run 총 5개가 있는데 전부 사용법이 비슷하게 생겨서 용도가 헷갈릴 때가 많다.
이와 관련해서 좋은 글을 발견해서 주소를 남기고 요약만 하겠다.
apply: 람다 내부에서 this로 객체를 사용하고 객체를 반환
람다 내부에서 객체의 함수를 사용하지 않고(프로퍼티만 사용) 자기 자신을 다시 반환하려는 경우에 사용한다. 대표적인 경우로 객체의 초기화가 있다.
also: 람다 내부에서 it으로 객체를 사용하고 객체를 반환
람다 내부에서 객체를 전혀 사용하지 않거나 객체의 속성을 변경하지 않을 때 사용한다. 대표적인 경우로 객체의 유효성 검사가 있다.
let: 람다 내부에서 it으로 객체를 사용하고 람다의 결과를 반환
얘는 주로 .? 연산자와 함께 지정된 값이 null이 아닐 때 실행하기 위한 용도로 사용된다.
run: 람다 내부에서 this로 객체를 사용하고 람다의 결과를 반환
주로 지역 변수의 범위를 제한하고 싶을 때 사용한다.
with: 객체를 넘길 때 파라미터로 넘기고 람다 내부에서 this로 객체를 사용하며 람다의 결과를 반환
얘만 유독 사용법이 튀는데(객체를 파라미터로 넘김) null이 될 수 없는 객체이고 반환값이 필요 없을 때 사용한다.
반응형
'프로그래밍 > 안드로이드' 카테고리의 다른 글
제조사별 백그라운드 앱 종료 방지 가이드, Don't kill my app! (0) | 2024.08.24 |
---|---|
원격으로 USB 디버깅 사용하기 (Wi-Fi adb) (0) | 2021.01.10 |
[Kotlin] WRITE_SETTINGS 권한 얻기 (0) | 2021.01.02 |
[자작] 셔터음 조절 (0) | 2020.09.05 |
APK 디컴파일 사이트 (0) | 2020.08.29 |
[Kotlin] dp를 px로 변환하기, DpToPx (0) | 2020.06.20 |
VectorDrawable 직접 만들기, Shape Shifter (0) | 2020.04.19 |
안드로이드 코딩 컨벤션 정리 (0) | 2020.03.07 |