Swift基础知识之闭包

记录日常生活中学习点滴,有不足之处,还请各位大佬批评指正,不胜感激!!!

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 }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容