假如有一个方法foo
fun foo(m: String, bar: (m: String) -> Unit) {
bar(m)
}
我们可以这样调用
foo("a message", { println("this is a message: $it") } )
//or
foo("a message") { println("this is a message: $it") }
但是有一个定义好的方法buz,我怎么把buz方法当作第二个参数传递给foo呢?
fun buz(m: String) {
println("another message: $m")
}
可以使用::
操作符表示方法的引用,比如说把上面的buz方法传递给foo,我们可以这样写。
foo("a message", ::buz)
或者在使用::
操作符的前面加上限定,用于指定是类或实例的buz方法。
foo("a message", this::buz) //当前实例的buz方法
foo("a message", Demo::buz) //Demo类中的静态buz方法
foo("a message", Demo()::buz) //Demo类中定义的实例buz方法
内容