각 범위 함수에 권장되는 사용 사례가 있습니다. 올바른 출력을 반환하고 코드 규칙에 맞는 함수를 선택하십시오.
[apply]
- 개체구성
val foo = Foo().apply { this.field1 = 1 }
[run]
- 개체 구성 및 결과 계산
val bar = Foo().run { this.field1 = 1 this.toBar() } - 여러 명령문을 하나의 표현식으로 그룹화 : run비 확장 양식도 있습니다.
val bar = run { val foo = Foo() foo.field1 = 1 foo.toBar() }
[also]
- 개체와 관련된 추가 효과 수행
val foo = Foo().also { doSomethingTo(it) }
[let]
- null이 아닌 객체에서 람다 실행
val bar = getFoo()?.let { it.toBar() } - 로컬 범위의 변수로 표현식 도입
(...complicated expression...).let { doSomethingWith(it) }
[with]
- 개체에 대한 그룹화 함수 호출. run확장 프로그램과 유사 하지만 아님
val bar = with(Foo()) { this.field1 = 1 this.toBar() }