Replies: 1 comment
-
스코프 함수는 특정 객체의 컨텍스트를 활용하여 코드를 더욱 간결하게 작성할 수 있도록 도와주는 inline 함수입니다. with: 설명) 파라미터로 수신 객체를 받고, 람다 내부에서 this를 통해 암시적으로 수신객체를 참조할 수 있습니다. 람다 블록의 결과값을 반환합니다. apply: 설명) 수신 객체의 확장함수 형태로, 람다 내부에서 암시적으로 수신 객체를 참조할 수 있습니다. 수신 객체를 반환합니다. run: 설명) run에는 수신 객체가 있는 경우와 없는 경우 두 가지 버전이 있습니다. 수신 객체가 있는 run 은 apply 와 거의 유사하지만, 람다 블록의 결과값을 반환합니다. 사례) 수신 객체가 없는 run 을 엘비스 연산자를 통한 null 체크 후 early return 을 할 때 별도의 로직 처리를 해줘야할 때 사용합니다. also: 설명) apply 와 유사하지만, 람다 블록 내부에서 명시적으로 수신 객체를 참조할 수 있습니다. let: 설명) also 와 유사하지만, 람다 블록의 결과값을 반환합니다. 그러나, 개인적으로 스코프 함수를 남용하게 될 경우 오히려 코드의 가독성이 떨어진다는 생각을 하여 |
Beta Was this translation helpful? Give feedback.
-
let
: non-nullable 객체에 대한 람다를 실행할 때, local scope 안에서만 쓰이는 변수 표현을 새로 도입할 때예시:
apply
: 객체 구성할 때 사용, 전달받은 수신객체 반환. 암시적으로 수신 객체를 전달run
: 객체 구성과 그 결과를 계산할 때 사용. 코드 블록의 수행 결과 반환, 임의로 생성한 값이나 객체 반환 가능also
: 추가적인 효과를 넣을 때 사용. 명시적으로 수신 객체 전달with
: 객체에 대한 메서드를 그룹핑할 때 사용Beta Was this translation helpful? Give feedback.
All reactions