Basic Operators
* 空格对操作符的影响很大,如 a??b 应该写作 a ?? b, 因为 a? 也是一个有效的操作符.
* a ??...比 js 的 || 好使多了,因为前者能准确区分零值和nil值.只有nil值时,才需要使用默认值.
* names[0.. 本质上,应该是 array 的[]操作符...Methods
* 结构体实例中,方法是否能够修改属性,也受实例本身的可变性的影响.
* 结构体或枚举等值类型,允许在实例方法内,直接给 self 赋值,完整替换.
* 枚举类型的相关操作,都可以封装在枚举类型自身...前者不会自动置为 nil.
* closure 是引用类型 -> closure 内引用实例属性,必须加 self前缀 -> closure 的参数声明前,可以加一个 capture list,如 [unowned...self],来解决循环引用问题.
* 可以证明,在非 self 以外的情况, closure 并不会引起内部使用变量的引用计数的变化.