[kotlin] 함수 호출 연산자

일반적으로, 함수 호출 연산자를 정의하기 위해서는 invoke 메서드를 클래스 내에 제공해야 합니다. 이렇게 함으로써 해당 클래스의 인스턴스를 함수처럼 호출할 수 있게 됩니다. 아래는 간단한 예제 코드입니다.

class Greeter(val greeting: String) {
    operator fun invoke(name: String) {
        println("$greeting, $name!")
    }
}

fun main() {
    val hello = Greeter("Hello")
    hello("Kotlin") // "Hello, Kotlin!" 출력
}

위의 코드에서 operator fun invoke(name: String) 메서드를 사용하여 함수 호출 연산자를 정의합니다. hello("Kotlin") 구문은 hello.invoke("Kotlin")으로 변환되어 실행되는 것과 동일합니다.

함수 호출 연산자를 사용하면 특정 객체를 함수처럼 직관적으로 사용할 수 있어서 코드를 읽고 이해하기 쉬워집니다. 이는 DSL을 구축하거나 특정 언어 유형의 더 쉬운 작성을 가능하게 합니다.

참고 자료: