Swift关键知识点6-闭包
00 分钟
2023-9-12

关于闭包closures

  • 全局函数是有函数名但不捕获值的闭包。
  • 嵌套函数是有函数名并且可以从嵌套它们的函数中捕获值的闭包。
  • Closure expression是没有名称且可以从他们的上下文环境中捕获值的简便闭包写法。

Closure Expression

  • 闭包表达式语法:参数可以是in-out参数,但是不能有默认值
  • 从上下文中推断参数和返回值类型
  • 单独的一条表达式可以省略return
  • 参数名称简写:传入的最大的参数值为参数个数。
  • 操作符方法:String实现了>操作符方法,因此可以直接使用操作服作为by的值。
  • Trailing Closures
  • 闭包是reference types
  • Escaping Closures(没有完全看懂):使用@escaping标识说明闭包可以escaping,也就是在return之后才运行。在类或者实例中,escaping closures需要显示引用self,或者把self加入闭包的capture list。在struct或者enumeration中,escaping closure不能把可变的reference捕获至self。
  • Autoclosures
 

评论