Self
可以在更多上下文中使用。return
的内容。macCatalyst
。Self
可以指向当前类,结构体或者枚举声明时的类型。dynamicCallable
属性动态调用实例作为函数的内容。unknown
来处理未来枚举可能发生改变的情形。<
的内容。#error
和 #warning
的内容。inlinable
和 usableFromInline
属性的内容。requires-stored-property-inits
和 warn-unqualified-access
属性的内容。#dsohandle
的内容。canImport()
和 targetEnvironment()
平台条件的内容。where
子句约束关联类型。objc
属性的讨论,现在该属性会在更少的位置被推断出来。final
特性了。available
特性的内容 。type(of:)
是 Swift 标准库函数。 unowned
,unowend(safe)
和 unowned(unsafe)
的内容。Any
作为可选值。 open
和 fileprivate
的内容。inout
的讨论,注意它现在出现在参数类型的前面,而不是在参数名称的前面。@noescape
和 @autoclosure
的讨论,现在他们是类型属性,而不是定义属性。while
和 guard
语句使用逗号分隔条件列表,不需要使用 where
语句。type(of:)
表达式的讨论。#sourceLocation(file:line:)
表达式的讨论。Never
类型的讨论。playground
字面量的内容。in-out
参数。@IBAction
,@IBOutlet
和 @NSManaged
隐式含有 @objc
属性。@GKInspectable
的内容。Objective-C
交互的代码中才能使用可选协议要求的内容。let
关键字作为函数参数的内容。Boolean
协议的内容, 现在这个协议已经被 Swift 标准库删除。@NSApplicationMain
协议的内容。#selector
语法。associatedtype
关键词修饰关联类型的讨论。nil
的相关内容。@objc
特性的讨论,并指出枚举和枚举用例。.
的讨论。for
循环,++
前缀和后缀运算符,以及 --
前缀和后缀运算符。@noescape
属性的相关内容。??
操作符的例子。ErrorType
协议了。try?
关键字相关内容。guard
语句相关的内容。repeat-while
循环相关的内容。String
类型在 Swift 标准库中不再遵循 CollectionType
协议。print(-:separator:terminator)
相关内容。String
原始值的枚举用例的行为相关内容。@autoclosure
特性的相关内容,包括它的 @autoclosure(escaping)
形式。@avaliable
和 warn-unused-result
特性的相关内容。@convention
特性的相关内容。where
子句进行多可选绑定的相关内容。+
运算符拼接字符串字面量的相关内容。@NSManaged
特性的讨论,现在这个特性可以被应用到一个确定实例方法。@objc
关键字。throw
语句的性能。在 Do 语句 章节的 do 语句部分也新增了类似内容。willSet
和 didSet
观察器的行为。private
作用域的相关内容说明。Set
集合类型,更多内容,请看 Sets 。@autoclosure
现在是一个参数声明的属性,而不是参数类型的属性。这里还有一个新的参数声明属性 @noescape
。更多内容,请看 属性声明 。static
关键字作为声明描述符,更多内容,请看 类型变量属性。as?
和 as!
的向下可失败类型转换运算符。更多内容,请看 协议遵循性检查。&/
)和求余溢出运算符(&%
)。if
语句后面以逗号分隔的赋值列表的方式出现,更多内容,请看 可选绑定。@obj
修饰的协议了。as?
和 as!
运算符,而确保不会失败的类型转换现在使用 as
运算符。更多内容,请看 类型转换运算符。Any
类型现可以包含函数实例。更新了有关 Any
相关的示例来展示如何在 switch
语句中如何检查并转换到一个函数类型。rawValue
属性替代 toRaw()
方法,同时使用了一个以 rawValue
为参数的失败构造器来替代 fromRaw()
方法。更多的内容,请看 原始值 和 带原始值的枚举类型。?
字符,更新了 运算符 涉及改进后的规则的部分,并且在 自定义运算符 章节中删除了重复的运算符有效字符集合。+
号运算符或者复合加法运算符 +=
相互连接,这两种运算符现在只能用于字符串之间相连。请使用 String
类型的 append
方法在一个字符串的尾部增加单个字符。availability
特性的一些内容。true
,同样,若无值时,也不再隐式的转换为 false
,这是为了避免在判别 optional Bool
的值时产生困惑。 替代的方案是,用==
或 !=
运算符显式地去判断 Optinal 是否是 nil
,以确认其是否包含值。a ?? b
) , 该表达式中,如果 Optional a
的值存在,则取得它并返回,若 Optional a
为 nil
,则返回默认值 b
+=
运算符给一个数组新增一个新的项。对应的替代方案是,使 append
方法,或者通过 +=
运算符来新增一个只有一个项的数组。a..b
和 a..<b
,起始值 a
不能大于结束值 b
。description
属性。 (而有关如何在子类的构造器中修改继承属性的默认值的例子,已经被移到 构造过程 篇章。) override
修饰符。required
修饰符现在需要出现在所有子类的 required 构造器的声明中,而 required 构造器的实现,现在可以仅从父类自动继承。@infix
属性。@prefix
和 @postfix
属性,已变更为 prefix
和 postfix
声明修饰符。@assignment
属性来定义函数。修饰符(Modifiers)的出现顺序发生变化
。比如现在,你该编写 prefix operator
, 而不是 operator prefix
。dynamic
声明修饰符的内容。Character
类型代表的是扩展字符集(extended grapheme cluster)中的一个 Unicode,为此,新增了 Extended Grapheme Clusters 章节。同时,Unicode 标量 和 字符串比较 章节新增了更多内容。\u{n}
的形式来表示,n
是一个最大可以有8位的16进制数。NSString
length
属性已被映射到 Swift 的内建 String
类型。(注意,这两属性的类型是utf16Count
,而非 utf16count
)。String
类型不再拥有 uppercaseString
和 lowercaseString
属性。在 字符串和字符 章节中删除了对应部分,并更新了各种对应的代码用例。@optional
, @lazy
, @final
, @required
等关键字被更新为 optional
, lazy
, final
, required
参见 声明修饰符。..<
的引用,从半闭区间改为了 半开区间。Dictionary
现在增加了一个 Boolean 型的属性:isEmpty
。nil
和布尔运算中的 true
和 false
现在被定义为 字面量。Array
) 类型从现在起具备了完整的值语义。具体内容被更新到 集合的可变性 和 数组 两小节,以反映这个新的变化。 此外,还解释了如何给 Strings, Arrays 和 Dictionaries 进行赋值和拷贝。SomeType []
更新为 [SomeType]
。[KeyType: ValueType]
。sorted
取代原先的全局函数 sort
去展示如何返回一个全新的数组。没有默认值
,逐一成员构造器也可以自动获得。..
更新为 ..<
。