
kotlin 是函数式编程,kotlin就是一个为简洁而生的语言。

看一个例子:

代码看下,例如:遍历打印一个集合
var value = fun(name: String): Unit {
println(name)
}
fun main(args: Array<String>) {
var names = listOf<String>("Tom", "jery", "Lucky")
names.forEach(value)
}
给一个函数指定了一个引用后这个函数就不需要名字了,可能看不懂点进forEach里面看看源码

forEach是一个高阶函数,传过来的参数是一个函数,而函数的参数类型是T就是集合中的元素类型。
上面代码也等价于直接用{} 去写
fun main(args: Array<String>) {
var names = listOf<String>("Tom", "jery", "Lucky")
names.forEach{
a-> println(a)
}
}
匿名函数,函数参数是a ,函数的内容是println(a)
forEach闭包里,默认的参数是it,直接就可以写成 println(it)
fun main(args: Array<String>) {
var names = listOf<String>("Tom", "jery", "Lucky")
names.forEach {
println(it)
}
}
以上三段代码都是等价的
网友评论