记录日常生活中学习点滴,有不足之处,还请各位大佬批评指正,不胜感激!!!
1. 闭包表达式(Closure Expression)
Swift中,可以通过func定义一个函数,也可以通过闭包表达式来定义一个函数
通过func定义函数
func sum(_ v1: Int, _ v2: Int) -> Int { v1 + v2 }
通过闭包定义函数
{ (参数列表) -> 返回值类型 in 函数体代码 }
- image
调用时,不用带参数名称
2. 闭包表达式的简写
- image
3. 尾随闭包
如果将一个很长的闭包表达式作为函数的最后一个实参,使用尾随闭包可以增强函数的可读性
尾随闭包是一个被书写在函数调用括号外面(后面)的闭包表达式
- image
如果闭包表达式是函数的唯一实参,而且使用了尾随闭包的语法,那就不需要再函数名后面写圆括号
- image
4. 忽略参数
- image
忽略参数,调用execs函数,打印的结果就是10
5. 闭包
一个函数和它所捕获的变量、常量环境组合起来,称为闭包
一般指定义在函数内部的函数
一般它捕获的是外层函数的局部变量、常量
- image
这里的标黄是因为返回值没有用到导致,请忽略
如果返回值是函数类型, 那么参数的修饰要保持统一
- image
这里变量num最终被修改为25
6. 自动闭包
@autoclosure 会自动将数字封装成 { 数字 }
@autoclosure 只支持 () -> T 格式的参数
?? 空合并运算符 使用了 @autoclosure 技术
有@autoclosure 、无@autoclosure 构成了函数重载
- image
调用的时候20 将自动包装成一个闭包 { 20 }