2-5-调用操作符

运算符对应的方法
a()a.invoke()
a(b)a.invoke(b)
a(b1,b2)a.invoke(b1,b2)
a(b1,b2,...,bn)a.invoke(b1,b2,...,bn)

调用运算符实际上就是省略了invoke方法名

class Greeter(val greeting: String) {
// 定义调用运算符
operator fun invoke(name: String) {
println("$greeting, $name!")
}
}

fun main() {
val hello = Greeter("Hello")

// 这两种写法等价
hello("Kotlin") // 调用运算符,省略 invoke
hello.invoke("Java") // 显式调用 invoke 方法
}