본문 바로가기
Android App/Kotlin

스코프 함수(run, let, apply, also, with)

by AppJinny 2022. 10. 31.

*스코프 함수(Scope functions) : run, let, apply, also, with

-코드를 축약해서 표현할 수 있도록 도와주는 함수, 영역함수

-함수처럼 쓰지 않고 괄호 없이 키워드처럼 사용

-자신을 호출한 대상을 this 또는 it으로 대체

--this로 사용되는 스코프 함수 : run, apply, with

--it으로 사용되는 스코프 함수 : let, also

-호출 대상 자체(this, it)를 반환 또는 마지막 실행 코드 반환

--호출 대상 자체를 반환하는 함수 : apply, also

--마지막 실행 코드를 반환하는 함수 : let, run, with

 

*this로 사용되는 스코프 함수 : run, apply, with

-스코프 함수 안에서 호출한 대상을 this로 사용

-this의 생략 : 클래스 내부 함수를 사용하는 것과 동일한 효과 이므로 this생략 가능

-호출 대상이 null일 경우 apply, run사용 : with는 확장함수가 아니기 때문에 일반 함수처럼 사용됨

-스코프 함수 안에서 this로 사용되기 때문에 메서드나 프로퍼티 직접 호출

 

*it으로 사용되는 스코프 함수 : let, also

-스코프 함수 안에서 호출한 대상을 it으로 사용

-it은 생략이 불가하지만 다른 이름으로 바꿀 수 있음(ex. target 등)

 

 

 

*호출 대상인 this 또는 it 자체의 값을 반환하는 함수 : apply, also

-스코프 함수 안에서 코드가 모두 완료된 후 자기 자신을 되돌려 줌

-예제 마지막 코드인 count()를 호출 했지만 이 코드와 상관 없이 MutableList 자신을 돌려주기 때문에 위와 같은 결과가 나옴

 

*마지막 실행 코드를 반환하는 함수 : let, run, with

-자기 자신의 값이 아닌 스코프의 마지막 코드를 반환함

 


이 포스팅에 작성한 내용은 고돈호, ⌜이것이 안드로이드다⌟, 한빛미디어(주), 2022 에서 발췌하였습니다.

'Android App > Kotlin' 카테고리의 다른 글

XML 태그의 구조, 주석  (0) 2022.11.02
레이아웃(Layout)  (0) 2022.11.02
지연 초기화(lateinit, lazy)  (1) 2022.10.31
null 값에 대한 안정적인 처리(Null Safety)  (0) 2022.10.31
클래스 - 요약정리  (0) 2022.10.31