Kotlin

수신 객체 지정 람다

주코식딩 2024. 2. 29. 10:12

클래스 내부가 아니더라도 this를 통해 해당 객체의 메서드나 프로퍼티에 직접 접근 할수있다.

람다식을 변수에 담고 함수처럼 호출 가능한데, 예제를 통해 알아보자.

 

class Customer(val name: String) 

val me: (Customer.() -> String) = { // 해당 블록은 this == Customer
    "Hello, $name!" // Customer 클래스 외부지만 name이라는 프로퍼티에 접근 가능
}

fun main() {
    val customer = Customer("John")

    me(customer)
}

 

물론 변수에 굳이 담아서 활용할 필요는 없지만 처음보는 방식이라서 예제로 활용해봤다.

(아마 Webflux 환경에서는 활용할지도..?)