一文带你了解kotlin中的闭包

相信不少搞java的童鞋刚开始都会困惑kotlin中经常中看到的闭包到底是个什么东西。我们简单点的理解就是{ },我们来举个例子如:fun test() { //闭包 }
然后我们在来看看闭包可以做些什么。首先闭包需要知道闭包有些什么
1.函数的运行环境
2.持有函数运行状态
3.支持在闭包里面定义函数
4.支持在闭包里面定义类
【一文带你了解kotlin中的闭包】在让我们来看一个例子

fun test(): () -> Unit { var a = 0 fun test2(){ print(a) } return fun() { a++ println(a) } }

我们可以看到在test函数里面又定义了一个test2()的函数 ,并且返回了一个函数 而这些在java中都是不支持的
而函数中可以定义函数和返回函数又有什么优势呢,我们再来看一个例子。
inline fun talk(area: (name:String)->String, noinline area2: (name:String)->String):String{ return area("你猴")+ area2("泥猴") }

调用:
talk({name ->"$name 1"},{name ->"$name 2"})
输出结果为
一文带你了解kotlin中的闭包
文章图片


我们可以将函数传递到另一个函数当中从而实现面试函数式编程。而面向函数式变成有什么好处我们在本文中就不做展开了
谢谢各位看官

    推荐阅读