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 方法
}
Content copied to clipboard