Swift iOS : 闭包的一个应用

本文通过一个具体的Swift代码示例,解析了一种特殊的闭包语法结构。这种语法可以定义并立即执行一个无参数的闭包,类似于JavaScript中的函数式编程特性。

我阅读一个开源代码的过程中,常常发现有这样的结构:

var textLabel:UILabel = {
    let label = UILabel()
    label.backgroundColor = .red
    return label
}()复制代码

功能能够编译,能够运行,因此语法当然是对的,直接望文生义也知道代码要干啥,只是,这是什么语法?

既然我们关心的是语法结构,那么简化下就是这样样子,对我们要研究的问题并无影响,但是更加简单:

  var a = {return 42}复制代码

这样,我们可以打印来验证它是啥?

    var a = {return 42}
    print(a)//(Function)
    print(a())//42复制代码

结果打印出来是

(Function)
42复制代码

这说明{}就是定义了一个闭包,并且此闭包是没有参数的。虽然,闭包经常用于函数参数,但是直接调用也无不可。加上()就会指定这个函数。这块函数的定义和调用真是超级灵活,感觉和JavaScript的函数式一样的了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值