kotlin lambda 之 forEach演化
下面这个是我们常见的用法 args.forEach({println(it)})
源码 public inline fun Array.forEach(action: (T) -> Unit): Unit { for (element in this) action(element) }
从上面看,forEach是Array的扩展方法,可以把forEach当做自己的方法
其中action是{println(it)} action的后面 T是参数的类型,->Unit这个是lambda表达式返回的类型
对于函数来说,如果最后一个参数是lambda表达式 args.forEach({println(it)}) 就可以把大口号移到外面 args.forEach() {println(it)} 如果小括号里面什么都没有,还可以把小括号删除 args.forEach{println(it)} 如果传入的函数和lambda表达式类型完全一样,可以进一步简化 args.forEach(::println)
下面这个是我们常见的用法 args.forEach({println(it)}) 源码 public inline fun Array.forEach(action: (T) -> Unit): Unit { for (element in this) action(element) } 从上面看,forEach是Array的扩展方法,可以把forEach当做自己的方法 其中action是{println(it)} action的后面 T是参数的类型,->Unit这个是lambda表达式返回的类型 对于函数来说,如果最后一个参数是lambda表达式 args.forEach({println(it)}) 就可以把大口号移到外面 args.forEach() {println(it)} 如果小括号里面什么都没有,还可以把小括号删除 args.forEach{println(it)} 如果传入的函数和lambda表达式类型完全一样,可以进一步简化 args.forEach(::println)