Swift 个人学习笔记 - 06: 闭包(Clousures)
本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。 在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。 本文地址:http://www.52php.cn/article/p-kvcfxqdl-d.html Reference:原版:The Swift Programming Language 这是我最不了解的部分了(目前是最,可能以后是之一了……)。闭包的概念和 C 最远,各种超越、各种跳出作用域……
闭包内嵌函数其实就是一种特殊的闭包。闭包可以捕获或者存储定义在上下文中的变量和常量。 闭包的常见作用:
以 首先说明一下 方法一:写一个普通函数传入func backward (_ s1: String,_ s2: String) -> Bool { return s1 > s2 } 方法二:写一个闭包{ (参数列表) -> (返回类型) in // 使用 in 分割参数和函数体 语句 } 可以这么写: sortResult = names.sorted(by: {(s1: String,s2: String) -> Bool in return s1 > s2 })
类型推断貌似这个 feature 是语法糖(存疑) 闭包有办法通过上下文推断出类型。比如上面的闭包可以改为: 单表达式的闭包可以省略 return 语句: 也可以用
尾随闭包感谢@被套撕裂者,说明:尾随闭包这一功能指的是:如果函数最后一个参数为闭包,那么在编写的时候,可以省略最后一个参数,并在函数尾部将这个闭包接上。 比如一个函数是这样的: func someFunc (time: Int,method: (who: Person )->Void) { ... } 使用了尾随闭包的调用方法可以这么写: someFunc (10) { person in //code..... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |