一文带你了解kotlin中的闭包

 相信不少搞java的童鞋刚开始都会困惑kotlin中经常中看到的闭包到底是个什么东西。我们简单点的理解就是{ },我们来举个例子如:fun test() { //闭包 }

然后我们在来看看闭包可以做些什么。首先闭包需要知道闭包有些什么

1.函数的运行环境 
        2.持有函数运行状态 
        3.支持在闭包里面定义函数 
        4.支持在闭包里面定义类

在让我们来看一个例子

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"})

输出结果为

 

  

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

谢谢各位看官

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值