[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을 구축하거나 특정 언어 유형의 더 쉬운 작성을 가능하게 합니다.
참고 자료: