2.1:02_basic_operator update

This commit is contained in:
shanksyang
2015-10-26 19:07:00 +08:00
parent 2854946456
commit 3cea3c0628

View File

@ -8,6 +8,9 @@
> 2.0 > 2.0
> 翻译+校对:[JackAlan](https://github.com/AlanMelody) > 翻译+校对:[JackAlan](https://github.com/AlanMelody)
> 2.1
> 校对:[shanks](https://codebuild.me)
本页包含内容: 本页包含内容:
- [术语](#terminology) - [术语](#terminology)
@ -22,11 +25,11 @@
运算符是检查、改变、合并值的特殊符号或短语。例如,加号`+`将两个数相加(如`let i = 1 + 2`)。更复杂的运算例子包括逻辑与运算符`&&`(如`if enteredDoorCode && passedRetinaScan`),或让 i 值加1的便捷自增运算符`++i`等。 运算符是检查、改变、合并值的特殊符号或短语。例如,加号`+`将两个数相加(如`let i = 1 + 2`)。更复杂的运算例子包括逻辑与运算符`&&`(如`if enteredDoorCode && passedRetinaScan`),或让 i 值加1的便捷自增运算符`++i`等。
Swift 支持大部分标准 C 语言的运算符,且改进许多特性来减少常规编码错误。如:赋值符(`=`)不返回值,以防止把想要判断相等运算符(`==`)的地方写成赋值符导致的错误。算术运算符(`+``-``*``/``%`等)会检测并不允许值溢出,以此来避免保存变量时由于变量大于或小于其类型所能承载的范围时导致的异常结果。当然允许你使用 Swift 的溢出运算符来实现溢出。详情参见[溢出运算符](./24_Advanced_Operators.html#overflow_operators)。 Swift 支持大部分标准 C 语言的运算符,且改进许多特性来减少常规编码错误。如:赋值符(`=`)不返回值,以防止把想要判断相等运算符(`==`)的地方写成赋值符导致的错误。算术运算符(`+``-``*``/``%`等)会检测并不允许值溢出,以此来避免保存变量时由于变量大于或小于其类型所能承载的范围时导致的异常结果。当然允许你使用 Swift 的溢出运算符来实现溢出。详情参见[溢出运算符](../chapter2/25_Advanced_Operators.html#overflow_operators)。
区别于 C 语言,在 Swift 中你可以对浮点数进行取余运算(`%`Swift 还提供了 C 语言没有的表达两数之间的值的区间运算符(`a..<b``a...b`),这方便我们表达一个区间内的数值。 区别于 C 语言,在 Swift 中你可以对浮点数进行取余运算(`%`Swift 还提供了 C 语言没有的表达两数之间的值的区间运算符(`a..<b``a...b`),这方便我们表达一个区间内的数值。
本章节只描述了 Swift 中的基本运算符,[高级运算符](./24_Advanced_Operators.html)包含了高级运算符,及如何自定义运算符,及如何进行自定义类型的运算符重载。 本章节只描述了 Swift 中的基本运算符,[高级运算符](../chapter2/25_Advanced_Operators.html)包含了高级运算符,及如何自定义运算符,及如何进行自定义类型的运算符重载。
<a name="terminology"></a> <a name="terminology"></a>
## 术语 ## 术语
@ -85,7 +88,7 @@ Swift 中所有数值类型都支持了基本的四则算术运算:
10.0 / 2.5 // 等于 4.0 10.0 / 2.5 // 等于 4.0
``` ```
与 C 语言和 Objective-C 不同的是Swift 默认情况下不允许在数值运算中出现溢出情况。但是你可以使用 Swift 的溢出运算符来实现溢出运算(如`a &+ b`)。详情参见[溢出运算符](./24_Advanced_Operators.html#overflow_operators)。 与 C 语言和 Objective-C 不同的是Swift 默认情况下不允许在数值运算中出现溢出情况。但是你可以使用 Swift 的溢出运算符来实现溢出运算(如`a &+ b`)。详情参见[溢出运算符](../chapter2/25_Advanced_Operators.html#overflow_operators)。
加法运算符也可用于`String`的拼接: 加法运算符也可用于`String`的拼接:
@ -206,9 +209,9 @@ let alsoMinusSix = +minusSix // alsoMinusSix 等于 -6
<a name="compound_assignment_operators"></a> <a name="compound_assignment_operators"></a>
## 合赋值Compound Assignment Operators ## 合赋值运算符Compound Assignment Operators
如同 C 语言Swift 也提供把其他运算符和赋值运算(`=`)组合的合赋值运算符,组合加运算(`+=`)是其中一个例子: 如同 C 语言Swift 也提供把其他运算符和赋值运算(`=`)组合的合赋值运算符,组合加运算(`+=`)是其中一个例子:
```swift ```swift
var a = 1 var a = 1
@ -235,7 +238,7 @@ a += 2 // a 现在是 3
- 小于等于(`a <= b` - 小于等于(`a <= b`
> 注意: > 注意:
Swift 也提供恒等`===`和不恒等`!==`这两个比较符来判断两个对象是否引用同一个对象实例。更多细节在[类与结构](./09_Classes_and_Structures.html)。 Swift 也提供恒等`===`和不恒等`!==`这两个比较符来判断两个对象是否引用同一个对象实例。更多细节在[类与结构](../chapter2/09_Classes_and_Structures.html)。
每个比较运算都返回了一个标识表达式是否成立的布尔值: 每个比较运算都返回了一个标识表达式是否成立的布尔值:
@ -260,7 +263,7 @@ if name == "world" {
// 输出 "hello, world", 因为 `name` 就是等于 "world" // 输出 "hello, world", 因为 `name` 就是等于 "world"
``` ```
关于`if`语句,请看[控制流](./05_Control_Flow.html)。 关于`if`语句,请看[控制流](../chapter2/05_Control_Flow.html)。
<a name="ternary_conditional_operator"></a> <a name="ternary_conditional_operator"></a>
## 三目运算符(Ternary Conditional Operator) ## 三目运算符(Ternary Conditional Operator)
@ -365,7 +368,7 @@ for index in 1...5 {
// 5 * 5 = 25 // 5 * 5 = 25
``` ```
关于`for-in`,请看[控制流](./05_Control_Flow.html)。 关于`for-in`,请看[控制流](../chapter2/05_Control_Flow.html)。
### 半开区间运算符 ### 半开区间运算符
@ -386,7 +389,7 @@ for i in 0..<count {
// 第 4 个人叫 Jack // 第 4 个人叫 Jack
``` ```
数组有4个元素`0..<count`只数到3(最后一个元素的下标),因为它是半开区间。关于数组,请查阅[数组](./04_Collection_Types.html#arrays)。 数组有4个元素`0..<count`只数到3(最后一个元素的下标),因为它是半开区间。关于数组,请查阅[数组](../chapter2/04_Collection_Types.html#arrays)。
<a name="logical_operators"></a> <a name="logical_operators"></a>
## 逻辑运算 ## 逻辑运算