修改枚举类型原始值相关语法

This commit is contained in:
feiin
2014-12-26 23:41:41 +08:00
parent 09bad1e822
commit 10034c66a6
2 changed files with 17 additions and 17 deletions

View File

@ -214,27 +214,27 @@ enum Planet: Int {
自動遞增意味著`Planet.Venus`的原始值是`2`,依次類推。 自動遞增意味著`Planet.Venus`的原始值是`2`,依次類推。
使用枚舉成員的`toRaw`方法可以訪問該枚舉成員的原始值: 使用枚舉成員的`rawValue`屬性可以訪問該枚舉成員的原始值:
```swift ```swift
let earthsOrder = Planet.Earth.toRaw() let earthsOrder = Planet.Earth.rawValue
// earthsOrder is 3 // earthsOrder is 3
``` ```
使用枚舉的`fromRaw`方法來試圖找到具有特定原始值的枚舉成員。這個例子通過原始值`7`識別`Uranus` 通過參數為`rawValue`構造函數創建特定原始值的枚舉。這個例子通過原始值`7`識別`Uranus`
```swift ```swift
let possiblePlanet = Planet.fromRaw(7) let possiblePlanet = Planet(rawValue: 7)
// possiblePlanet is of type Planet? and equals Planet.Uranus // possiblePlanet is of type Planet? and equals Planet.Uranus
``` ```
然而,並非所有可能的`Int`值都可以找到個匹配的行星。正因為如此,`fromRaw`方法可以返回個***可選***的枚舉成員。在上面的例子中,`possiblePlanet``Planet?`類型,或可選的`Planet` 然而,並非所有可能的`Int`值都可以找到個匹配的行星。正因為如此,構造函數可以返回個***可選***的枚舉成員。在上面的例子中,`possiblePlanet``Planet?`類型,或可選的`Planet`
如果試圖尋找個位置為9的行星通過`fromRaw`返回的可選`Planet`值將是`nil` 如果試圖尋找個位置為9的行星通過參數為`rawValue`構造函數返回的可選`Planet`值將是`nil`
```swift ```swift
let positionToFind = 9 let positionToFind = 9
if let somePlanet = Planet.fromRaw(positionToFind) { if let somePlanet = Planet(rawValue: positionToFind) {
switch somePlanet { switch somePlanet {
case .Earth: case .Earth:
println("Mostly harmless") println("Mostly harmless")
@ -247,5 +247,5 @@ if let somePlanet = Planet.fromRaw(positionToFind) {
// 輸出 "There isn't a planet at position 9 // 輸出 "There isn't a planet at position 9
``` ```
這個範例使用可選綁定optional binding通過原始值`9`試圖訪問一個行星。`if let somePlanet = Planet.fromRaw(9)`語句獲得一個可選`Planet`,如果可選`Planet`可以被獲得,把`somePlanet`設置成該可選`Planet`的內容。在這個範例中,無法檢索到位置為`9`的行星,所以`else`分支被執行。 這個範例使用可選綁定optional binding通過原始值`9`試圖訪問一個行星。`if let somePlanet = Planet(rawValue: 9)`語句獲得一個可選`Planet`,如果可選`Planet`可以被獲得,把`somePlanet`設置成該可選`Planet`的內容。在這個範例中,無法檢索到位置為`9`的行星,所以`else`分支被執行。

View File

@ -214,27 +214,27 @@ enum Planet: Int {
自动递增意味着`Planet.Venus`的原始值是`2`,依次类推。 自动递增意味着`Planet.Venus`的原始值是`2`,依次类推。
使用枚举成员的`toRaw`方法可以访问该枚举成员的原始值: 使用枚举成员的`rawValue`属性可以访问该枚举成员的原始值:
```swift ```swift
let earthsOrder = Planet.Earth.toRaw() let earthsOrder = Planet.Earth.rawValue
// earthsOrder is 3 // earthsOrder is 3
``` ```
使用枚举的`fromRaw`方法来试图找到具有特定原始值的枚举成员。这个例子通过原始值`7`识别`Uranus` 通过参数为`rawValue`构造函数创建特定原始值的枚举。这个例子通过原始值`7`识别`Uranus`
```swift ```swift
let possiblePlanet = Planet.fromRaw(7) let possiblePlanet = Planet(rawValue: 7)
// possiblePlanet is of type Planet? and equals Planet.Uranus // possiblePlanet is of type Planet? and equals Planet.Uranus
``` ```
然而,并非所有可能的`Int`值都可以找到一个匹配的行星。正因为如此,`fromRaw`方法可以返回一个***可选***的枚举成员。在上面的例子中,`possiblePlanet``Planet?`类型,或“可选的`Planet`”。 然而,并非所有可能的`Int`值都可以找到一个匹配的行星。正因为如此,构造函数可以返回一个***可选***的枚举成员。在上面的例子中,`possiblePlanet``Planet?`类型,或“可选的`Planet`”。
如果你试图寻找一个位置为9的行星通过`fromRaw`返回的可选`Planet`值将是`nil` 如果你试图寻找一个位置为9的行星通过参数为`rawValue`构造函数返回的可选`Planet`值将是`nil`
```swift ```swift
let positionToFind = 9 let positionToFind = 9
if let somePlanet = Planet.fromRaw(positionToFind) { if let somePlanet = Planet(rawValue: positionToFind) {
switch somePlanet { switch somePlanet {
case .Earth: case .Earth:
println("Mostly harmless") println("Mostly harmless")
@ -247,5 +247,5 @@ if let somePlanet = Planet.fromRaw(positionToFind) {
// 输出 "There isn't a planet at position 9 // 输出 "There isn't a planet at position 9
``` ```
这个范例使用可选绑定optional binding通过原始值`9`试图访问一个行星。`if let somePlanet = Planet.fromRaw(9)`语句获得一个可选`Planet`,如果可选`Planet`可以被获得,把`somePlanet`设置成该可选`Planet`的内容。在这个范例中,无法检索到位置为`9`的行星,所以`else`分支被执行。 这个范例使用可选绑定optional binding通过原始值`9`试图访问一个行星。`if let somePlanet = Planet(rawValue: 9)`语句获得一个可选`Planet`,如果可选`Planet`可以被获得,把`somePlanet`设置成该可选`Planet`的内容。在这个范例中,无法检索到位置为`9`的行星,所以`else`分支被执行。