3. also
- 반환값은 호출한 객체 (return this)
- 블록문 안에서 호출한 객체에 접근할 때는 it 키워드를 사용
<예제>
fun main() {
var person : Person = Person("david", "male", "game")
var p : Person = person.also {
println("also01")
printInfo(it);
it.hobby = "walk"
Person("hannah", "female", "swim")
}
println("also02")
printInfo(p)
}
<결과>
also01
printInfo ::
name -> david
hobby -> game
sex -> male
also02
//마지막 줄이 아닌 참조한 객체 자체를 반환
printInfo ::
name -> david
hobby -> walk
sex -> male
4. apply
- 호출하는 객체를 블록으로 전달
- 블록에서 호출한 객체에 접근하려면 this 키워드를 사용 (this 키워드는 생략 가능)
- also와 달리 인자값이 확장 함수로 처리 됨 (block: T.() -> Unit)
<예제>
var person : Person = Person("david", "male", "game")
var p : Person = person.apply {
println("apply01")
printInfo(this);
this.hobby = "walk" //this는 생략 가능
Person("hannah", "female", "swim")
}
println("apply02")
printInfo(p)
<결과>
apply01
printInfo ::
name -> david
hobby -> game
sex -> male
apply02
//마지막 줄이 아닌 참조한 객체 자체를 반환
printInfo ::
name -> david
hobby -> walk
sex -> male
'개발 > Kotlin' 카테고리의 다른 글
코틀린 공부 - 함수 (4) let, run, also, apply, with의 차이 정리 (0) | 2021.08.03 |
---|---|
코틀린 공부 - 함수 (4) with (0) | 2021.08.03 |
코틀린 공부 - 함수(4) - let / run (0) | 2021.08.03 |
코틀린 공부 - 함수(3) (0) | 2021.08.02 |
코틀린 공부 - 함수(2) (0) | 2021.08.02 |