Functions
* 可变字符串的 label 是可以在函数声明时,由自己指定的. ==> 可变参数,不需要是最后一组参数
* inout 有点像是指针传值;不同的是,在函数内使用时,不需要处理指针解引用操作...部分会被自动忽略. --> 在绝大部分场景中,二者是兼容的.
* closure 可以省略参数类型,是因为类型推导机制的存在 --> 尾闭包,可以省略 ();
* 用作函数参数的闭包,如果想在函数外使用...,需要额外加 @escaping 标记 ;@autoclosure 会自动补全用作函数参数的闭包的{}符号 --> @autoclosure 标记的闭包,是有可能和其他一般参数标记的参数,函数签名重复的...Enumerations
* 递归定义的枚举,就是一个演示函数式编程的绝佳示例.
* swift 中的枚举,变成了一中,可以有效承载数据和算法的描述性数据结构.
* swift 中的 enumeration...Protocols
* 在swift 的设定中, protocol 也属于 type,可以用于任何 type 适用的场景.
* 在类型声明遵循某协议以外的位置,书写符合协议的方法是,用 & 连接多个协议