| 2014-08-18 |
-
发布新的文档用以详述 Swift 1.0,苹果公司针对iOS和OS X应用的全新开发语言。
-
在章节协议中,增加新的小节:对构造器的规定(Initializer Requirements)
-
在章节协议中,增加新的小节:类专属协议(class-only protocols)
-
断言(assertions)现在可以使用字符串内插语法,并删除了文档中有冲突的注释
-
更新了连接字符串和字符(Concatenating Strings and Characters)小节来说明一个事实,那就是字符串和字符不能再用
+号运算符或者复合加法运算符+=相互连接,这两种运算符现在只能用于字符串之间相连。请使用String类型的append方法在一个字符串的尾部增加单个字符
-
在声明特性(Declaration Attributes)章节增加了关于
availability特性的一些信息
-
可选类型(Optionals) 若有值时,不再隐式的转换为
true,同样,若无值时,也不再隐式的转换为 false, 这是为了避免在判别 optional Bool 的值时产生困惑。 替代的方案是,用== 或 != 运算符显式地去判断Optinal是否是 nil,以确认其是否包含值。
-
Swift新增了一个 Nil合并运算符(Nil Coalescing Operator) (
a ?? b), 该表达式中,如果Optional a的值存在,则取得它并返回,若Optional a为nil,则返回默认值 b
-
更新和扩展 字符串的比较(Comparing Strings) 章节,用以反映和展示'字符串和字符的比较',以及'前缀(prefix)/后缀(postfix)比较'都开始基于扩展字符集(extended grapheme clusters)规范的等价比较.
-
现在,你可以通过 可选链(Optional Chaining)来:给属性设值,将其赋给一个下标脚注(subscript); 或调用一个变异(mutating)方法或运算符。对此,章节——通过可选链访问属性(Accessing Properties Through Optional Chaining)的内容已经被相应的更新。而章节——通过可选链调用方法(Calling Methods Through Optional Chaining中,关于检查方法调用是否成功的例子,已被扩展为展示如何检查一个属性是否被设值成功。
-
在章节可选链中,增加一个新的小节 访问可选类型的下标脚注(Accessing Subscripts of Optional Type)
-
更新章节 访问和修改数组(Accessing and Modifying an Array) 以标示:从该版本起,不能再通过
+= 运算符给一个数组添加一个新的项。. 对应的替代方案是, 使append 方法, 或者通过+=运算符来添加一个只有一个项的数组(single-item Array).
-
添加了一个提示:在 范围运算符(Range Operators)中,比如,
a...b 和 a..<b ,起始值a不能大于结束值b.
-
重写了继承(Inheritance) 这一章:删除了本章中关于构造器重写的介绍性报道;转而将更多的注意力放到新增的部分——子类的新功能,以及如何通过重写(overrides)修改已有的功能。另外,小节 重写属性的Getters和Setters(Overriding Property Getters and Setters) 中的例子已经被替换为展示如何重写一个
description 属性. (而关于如何在子类的构造器中修改继承属性的默认值的例子,已经被移到 构造过程(Initialization) 这一章.)
-
更新了 构造器的继承与重写(Initializer Inheritance and Overriding) 小节以标示: 重写一个特定的构造器必须使用
override 修饰符.
-
更新 Required构造器(Required Initializers) 小节以标示:
required 修饰符现在需要出现在所有子类的required构造器的声明中, 而required构造器的实现,现在可以仅从父类自动继承。
-
中置(Infix)的 运算符函数(Operator Functions) 不再需要
@infix 属性.
-
前置和后置运算符(Prefix and Postfix Operators)的
@prefix 和 @postfix 属性,已变更为 prefix 和 postfix 声明修饰符(declaration modifiers).
-
增加一条注解:当Prefix和postfix运算符被作用于同一个操作数时,关于前置和后置运算符(Prefix and Postfix Operators)的顺序(postfix运算符会先被执行)
-
在运算符函数(Operator functions)中, 组合赋值运算符(Compound Assignment Operators) 不再使用
@assignment 属性来定义函数.
-
在这个版本中,在定义自定义操作符(Custom Operators) 时,修饰符(Modifiers)的出现顺序发生变化。比如, 现在,你该编写
prefix operator, 而不是 operator prefix.
-
增加信息:关于
dynamic 声明修饰符(declaration modifier),于章节 声明修饰符(Declaration Modifiers).
-
增加信息:字面量Literals 的类型推导(type inference)
-
为章节Curried Functions添加了更多的信息.
-
加入新的章节 权限控制(Access Control).
-
更新了章节 字符串和字符(Strings and Characters) 用以表明,在Swift中,
Character 类型现在代表的是扩展字符集(extended grapheme cluster)中的一个Unicode,为此,新增了小节 Extended Grapheme Clusters 。同时,为小节 Unicode标量(Unicode Scalars) 和 字符串比较(Comparing Strings)增加了更多内容.
-
更新章节字符串字面量(String Literals):在一个字符串中,Unicode标量(Unicode scalars) 以
\u{n}的形式来表示, n 是一个最大可以有8位的16进制数(hexadecimal digits)
-
NSString length 属性已被映射到Swift的内建 String类型。(注意,这两属性的类型是utf16Count,而非 utf16count).
-
Swift的内建
String 类型不再拥有 uppercaseString 和 lowercaseString 属性.其对应部分在章节 字符串和字符(Strings and Characters)已经被删除, 并且各种对应的代码用例也已被更新.
-
加入新的章节 没有外部名的构造器参数(Initializer Parameters Without External Names).
-
加入新的章节 Required构造器(Required Initializers).
-
加入新的章节 可选元祖(函数)返回类型 (Optional Tuple Return Types).
-
更新章节 类型标注(Type Annotations) :多个相关变量可以用“类型标注”(type annotaion)在同一行中声明为同一类型。
-
@optional, @lazy, @final, @required 等关键字被更新为 optional, lazy, final, required 参见声明修饰符(Declaration Modifiers).
-
更新整本书 —— 引用
..< 作为区间运算符(Half-Open Range Operator) (取代原先的.. ).
-
更新了小节 读取和修改字典(Accessing and Modifying a Dictionary):
Dictionary 现在早呢更加了一个 Boolean型的属性: isEmpty
-
解释了哪些字符(集)可被用来定义自定义操作符 (Custom Operators)
-
nil 和布尔运算中的 true 和 false 现在被定义为字面量Literals.
-
Swift 中的数组 (
Array) 类型从现在起具备了完整的值语义。具体信息被更新到 集合的可变性(Mutability of Collections) 和 数组(Arrays) 两小节,以反映这个新的变化. 此外,还解释了如何 给Strings, Arrays和Dictionaries进行赋值和拷贝 (Assignment and Copy Behavior for Strings, Arrays, and Dictionaries).
-
数组类型速记语法(Array Type Shorthand Syntax) 从
SomeType[].更新为[SomeType]
-
加入新的小节:字典类型的速记语法(Dictionary Type Shorthand Syntax).:
[KeyType: ValueType].
-
加入新的小节:字典键类型的哈希值(Hash Values for Dictionary Key Types).
-
例子 闭包表达式 (Closure Expressions) 中使用新的全局函数
sorted 取代原先的全局函数 sort 去展示如何返回一个全新的数组.
-
更新关于 结构体逐一成员构造器 (Memberwise Initializers for Structure Types) 的描述:即使结构体的成员没有默认值,逐一成员构造器也可以自动获得。
-
区间运算符(Half-Open Range Operator)由
..更新到..<
-
添加一个例子 扩展一个泛型(Extending a Generic Type)
|