Swift5.0 闭包的定义和使用

闭包定义

       一个函数和它所捕获的变量\常量环境组合起来,称为闭包

      1、一般指定义在函数内部的函数

       2、一般它捕获的是外层函数的局部变量\常量

       3、可以把闭包想象成是一个类的实例对象

       4、内存在堆空间

        5、捕获的局部变量、常量就是对象的成员

        6、组成闭包的函数就是类内部定义的方法

一般形式

  • 例子

 

//一般形式
//有参有反
let testOne: (String, String) -> String = {(str1, str2) in return str1 + str2}
print(testOne("one", "two"))
//无参有反  可以直接省略 "in"
let testTwo: () -> String = {return "test闭包"}
//无参无反
let testThree: () -> Void = {print("test闭包")}
  • 归纳
    上面的例子中:后面是闭包的类型,而=后面的就是一个代码块,也就是闭包的具体实现。

  • 起别名

//可以用"typealias"先声明一个闭包类型
typealias testBlock = (String) -> Void
let aaa: testBlock = {str in
    print(str)
}

值捕获

  • 简单来说就是闭包可以捕获上下文中的常量和变量,常常是外部函数中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值