关于闭包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