fix 2.1 the basics[ref style]
This commit is contained in:
@ -218,7 +218,6 @@ Swift 也提供了一个特殊的无符号类型`UInt`,长度与当前平台
|
|||||||
* 在64位平台上,`UInt`和`UInt64`长度相同。
|
* 在64位平台上,`UInt`和`UInt64`长度相同。
|
||||||
|
|
||||||
> 注意:
|
> 注意:
|
||||||
>
|
|
||||||
尽量不要使用`UInt`,除非你真的需要存储一个和当前平台原生字长相同的无符号整数。除了这种情况,最好使用`Int`,即使你要存储的值已知是非负的。统一使用`Int`可以提高代码的可复用性,避免不同类型数字之间的转换,并且匹配数字的类型推断,请参考[类型安全和类型推断](#type_safety_and_type_inference)。
|
尽量不要使用`UInt`,除非你真的需要存储一个和当前平台原生字长相同的无符号整数。除了这种情况,最好使用`Int`,即使你要存储的值已知是非负的。统一使用`Int`可以提高代码的可复用性,避免不同类型数字之间的转换,并且匹配数字的类型推断,请参考[类型安全和类型推断](#type_safety_and_type_inference)。
|
||||||
|
|
||||||
<a name="floating-point_numbers"></a>
|
<a name="floating-point_numbers"></a>
|
||||||
@ -515,7 +514,6 @@ println("The status message is \(http200Status.description)")
|
|||||||
* _没有_值
|
* _没有_值
|
||||||
|
|
||||||
> 注意:
|
> 注意:
|
||||||
>
|
|
||||||
C 和 Objective-C 中并没有可选类型这个概念。最接近的是 Objective-C 中的一个特性,一个方法要不返回一个对象要不返回`nil`,`nil`表示“缺少一个合法的对象”。然而,这只对对象起作用——对于结构体,基本的 C 类型或者枚举类型不起作用。对于这些类型,Objective-C 方法一般会返回一个特殊值(比如`NSNotFound`)来暗示值缺失。这种方法假设方法的调用者知道并记得对特殊值进行判断。然而,Swift 的可选类型可以让你暗示_任意类型_的值缺失,并不需要一个特殊值。
|
C 和 Objective-C 中并没有可选类型这个概念。最接近的是 Objective-C 中的一个特性,一个方法要不返回一个对象要不返回`nil`,`nil`表示“缺少一个合法的对象”。然而,这只对对象起作用——对于结构体,基本的 C 类型或者枚举类型不起作用。对于这些类型,Objective-C 方法一般会返回一个特殊值(比如`NSNotFound`)来暗示值缺失。这种方法假设方法的调用者知道并记得对特殊值进行判断。然而,Swift 的可选类型可以让你暗示_任意类型_的值缺失,并不需要一个特殊值。
|
||||||
|
|
||||||
来看一个例子。Swift 的`String`类型有一个叫做`toInt`的方法,作用是将一个`String`值转换成一个`Int`值。然而,并不是所有的字符串都可以转换成一个整数。字符串`"123"`可以被转换成数字`123`,但是字符串`"hello, world"`不行。
|
来看一个例子。Swift 的`String`类型有一个叫做`toInt`的方法,作用是将一个`String`值转换成一个`Int`值。然而,并不是所有的字符串都可以转换成一个整数。字符串`"123"`可以被转换成数字`123`,但是字符串`"hello, world"`不行。
|
||||||
@ -604,7 +602,6 @@ var surveyAnswer: String?
|
|||||||
```
|
```
|
||||||
|
|
||||||
> 注意:
|
> 注意:
|
||||||
>
|
|
||||||
Swift 的`nil`和 Objective-C 中的`nil`并不一样。在 Objective-C 中,`nil`是一个指向不存在对象的指针。在 Swift 中,`nil`不是指针——它是一个确定的值,用来表示值缺失。_任何_类型的可选状态都可以被设置为`nil`,不只是对象类型。
|
Swift 的`nil`和 Objective-C 中的`nil`并不一样。在 Objective-C 中,`nil`是一个指向不存在对象的指针。在 Swift 中,`nil`不是指针——它是一个确定的值,用来表示值缺失。_任何_类型的可选状态都可以被设置为`nil`,不只是对象类型。
|
||||||
|
|
||||||
### 隐式解析可选类型
|
### 隐式解析可选类型
|
||||||
@ -634,7 +631,6 @@ println(assumedString) // 不需要感叹号
|
|||||||
你可以把隐式解析可选类型当做一个可以自动解析的可选类型。你要做的只是声明的时候把感叹号放到类型的结尾,而不是每次取值的可选名字的结尾。
|
你可以把隐式解析可选类型当做一个可以自动解析的可选类型。你要做的只是声明的时候把感叹号放到类型的结尾,而不是每次取值的可选名字的结尾。
|
||||||
|
|
||||||
> 注意:
|
> 注意:
|
||||||
>
|
|
||||||
如果你在隐式解析可选类型没有值的时候尝试取值,会触发运行时错误。和你在没有值的普通可选类型后面加一个惊叹号一样。
|
如果你在隐式解析可选类型没有值的时候尝试取值,会触发运行时错误。和你在没有值的普通可选类型后面加一个惊叹号一样。
|
||||||
|
|
||||||
你仍然可以把隐式解析可选类型当做普通可选类型来判断它是否包含值:
|
你仍然可以把隐式解析可选类型当做普通可选类型来判断它是否包含值:
|
||||||
@ -656,7 +652,6 @@ if let definiteString = assumedString {
|
|||||||
```
|
```
|
||||||
|
|
||||||
> 注意:
|
> 注意:
|
||||||
>
|
|
||||||
如果一个变量之后可能变成`nil`的话请不要使用隐式解析可选类型。如果你需要在变量的生命周期中判断是否是`nil`的话,请使用普通可选类型。
|
如果一个变量之后可能变成`nil`的话请不要使用隐式解析可选类型。如果你需要在变量的生命周期中判断是否是`nil`的话,请使用普通可选类型。
|
||||||
|
|
||||||
<a name="assertions"></a>
|
<a name="assertions"></a>
|
||||||
|
|||||||
Reference in New Issue
Block a user