ganghee / Android_Pattern

Repository, MVP, MVVM, AAC, Koin
0 stars 0 forks source link

5-3 let, apply, with, run, also 구분 방법? #14

Closed ganghee closed 5 years ago

ganghee commented 5 years ago

let, with, apply, run, also 각각의 키워드들을 어떻게 구분하여 사용해야 하는가?

ganghee commented 5 years ago

let: let()은 함수를 호출하는 객체를 이어지는 블록의 인자로 넘기고, 블록의 결과값을 반환합니다. 사용 예: 함수를 호출한 객체를 인자로 받으므로, 이를 사용하여 다른 메서드를 실행하거나 연산을 수행해야 하는 경우 사용할 수 있습니다.

with : run() 함수는 with() 함수를 좀 더 편리하게 사용하기 위해 let()함수와 with()함수를 합쳐놓은 형태입니다. run() 함수가 안전한 호출(Safe Calls)을 지원하는데 반해, with() 함수는 이를 자체적으로 지원하지 않습니다.

apply: 함수를 호출하는 객체를 이어지는 블록의 리시버 로 전달하고, 객체 자체를 반환합니다. 사용 예 : 객체를 생성하면서 함께 호출해야 하는 초기화 코드가 있는 경우 사용할 수 있습니다.

run : nullable 인 객체도 세팅이 가능하다 객체에서 이 함수를 호출하는 경우 객체를 리시버로 전달받으므로, 특정 객체의 메서드나 필드를 연속적으로 호출하거나 값을 할당할 때 사용합니다. 사용 예: apply()와 적용 예가 유사하지만, apply()는 새로운 객체를 생성함과 동시에 연속된 작업이 필요할 때 사용하고 run()은 이미 생성된 객체에 연속된 작업이 필요할 때 사용한다는 점이 조금 다릅니다.

also: apply 함수와 마찬가지로 객체를 반환하며 let 과 동작이 매우 유사합니다. 하지만 let 에서는 내부 결과를 변화 시킬 수 있지만 also 에서는 변화 시킬 수 없습니다,