您的位置:首页 > 其它

Kotlin语言学习之将函数作为参数传递,使用双冒号::引用其他方法

2017-10-27 15:41 856 查看
Kotlin 支持函数作为参数传递,无需构建对象来包装函数。

1、无参数函数调用

class Hello {

fun say() {
print("Hello World")
}

/**
* 在 Kotlin 中无返回为 Unit
* 此方法接收一个无参数的函数并且无返回
* 使用参数名加 () 来调用
*/
fun people(hello: () -> Unit) {
hello()
}

/**
* 在 kotlin 中有一个约定,如果最后一个参数是函数,可以省略括号
*/
fun main() {
people({ say() })
people { say() }

val h = Hello()
people(h::say) // 使用双冒号引用其他方法
}
}

2、有参数函数调用

class Hello {

fun say(msg: String) {
print("Hello $msg")
}

/**
* 参数中有函数
*/
fun people(arg0: String, hello: (arg1: String) -> Unit) {
hello(arg0)
}

fun main() {
val h = Hello()
people ("Android", h::say ) // 使用双冒号引用其他方法
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  kotlin 函数 双冒号
相关文章推荐