12.md 6.6 KB
Newer Older
W
wizardforcel 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# 迅捷运算符

> 原文: [https://www.programiz.com/swift-programming/operators](https://www.programiz.com/swift-programming/operators)

#### 在本文中,您将学习有关 Swift 编程语言中不同类型的运算符,它们的语法以及如何在示例中使用它们的所有知识。

运算符是对操作数(变量和值)进行运算的特殊符号(字符)。 一些基本操作包括分配,更改,组合和检查值。

例如,`+`是执行加法的运算符。

[Swift 变量&常量](/swift-programming/variables-constants-literals)文章中,您了解了变量/常量。 现在,在本文中,您将在它们上使用运算符。

* * *

## 运算符的类型

您可以根据以下内容将操作符大致分为两个基本类别:

1.  操作数
W
wizardforcel 已提交
20
2.  运算符的操作
W
wizardforcel 已提交
21

W
wizardforcel 已提交
22
根据运算符要操作的操作数的数量,运算符可以分类为:
W
wizardforcel 已提交
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

## 1.一元运算符

该运算符对单个操作数进行运算。

### 示例 1:一元运算符

```swift
print(!true)
var a = -5
print(-a) 
```

当您运行上述程序时,输出将是:

```swift
false
5
```

* * *

## 2.二进制运算符

该运算符对两个操作数进行运算。

### 示例 2:二元运算符

```swift
let result = 20 + 30
print(result) 
```

W
wizardforcel 已提交
56
运行该程序时,输出为:
W
wizardforcel 已提交
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74

```swift
50
```

* * *

## 3.三元运算符

该运算符对三个操作数进行运算。 访问 [Swift 三元条件运算符](/swift-programming/ternary-conditional-operator "Swift ternary conditional operator")了解有关它的更多信息。

### 示例 3:三元运算符

```swift
let result = (5 > 10) ? "Value larger" : "Value Smaller"
print(result) 
```

W
wizardforcel 已提交
75
运行该程序时,输出为:
W
wizardforcel 已提交
76 77 78 79 80 81 82

```swift
Value Smaller
```

* * *

W
wizardforcel 已提交
83
根据执行的**操作**,运算符可以分类为:
W
wizardforcel 已提交
84 85 86

## 1.赋值运算符

W
wizardforcel 已提交
87
快速使用赋值运算符将值赋给属性(变量/常量)。
W
wizardforcel 已提交
88

W
wizardforcel 已提交
89 90 91
Swift Assignment Operators

| 运算符 | 含义 |
W
wizardforcel 已提交
92
| --- | --- |
W
wizardforcel 已提交
93 94 95 96 97 98
| `=` | 简单的赋值运算符,将值从右侧操作数赋给左侧操作数 |
| `+=` | 加法赋值运算符,将右操作数添加到左操作数,并将结果赋给左操作数 |
| `-=` | 减法赋值运算符,它从左操作数中减去右操作数,并将结果赋给左操作数 |
| `*=` | 乘法赋值运算符,将右操作数与左操作数相乘并将结果赋给左操作数 |
| `/=` | 除法赋值运算符,它将左操作数除以右操作数,并将结果赋给左操作数 |
| `%=` | 模赋值运算符,它使用两个操作数取模并将结果赋给左操作数 |
W
wizardforcel 已提交
99 100 101 102 103 104 105
| `<<=` | 左移赋值运算符 |
| `>>=` | 右移赋值运算符 |
| `&=` | 按位与赋值运算符 |
| `^=` | 按位异或赋值运算符 |
| <code>&#124;=</code> | 按位运算符和赋值运算符 |

### 示例 4:普通赋值运算符
W
wizardforcel 已提交
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

```swift
let age = 10
let platform = "iOS"
print(age)
print(platform) 
```

运行该程序时,输出为:

```swift
10
iOS 
```

W
wizardforcel 已提交
121
上面的示例将整数值 10 赋给常数`age`。 因此,语句`print(age)`在控制台中输出 10。
W
wizardforcel 已提交
122

W
wizardforcel 已提交
123
同样,语句`let platform = "iOS"`将字符串文字`"iOS"`赋给常量`platform`。 因此,语句`print(platform)`在控制台中输出`iOS`
W
wizardforcel 已提交
124 125 126 127 128 129 130 131 132

### 示例 5:复合赋值运算符

```swift
var x = 10
x -= 2
print(x)
```

W
wizardforcel 已提交
133
运行该程序时,输出为:
W
wizardforcel 已提交
134 135 136 137 138

```swift
8
```

W
wizardforcel 已提交
139
表达式`x -= 2`使用复合赋值运算符`(-=)`,并且是`x = x - 2`的简写。 该运算符是复合赋值运算符,因为该运算符同时执行任务减法和分配。
W
wizardforcel 已提交
140 141 142 143 144 145 146 147 148

您可以在本文[中找到有关按位运算符的示例。Swift 按位运算符](/swift-programming/bitwise-operators "Swift Bitwise operators")

* * *

## 2.算术运算符

这些运算符用于执行数学运算,包括乘法,除法,加法和减法等。该运算符属于采用两个操作数的二进制运算符。

W
wizardforcel 已提交
149 150
Swift Arithmetic Operators

W
wizardforcel 已提交
151
| 运算符 | 含义 |
W
wizardforcel 已提交
152 153 154 155
| --- | --- |
| + | 加法(也用于字符串连接) |
| - | 减法运算符 |
| * | 乘法运算符 |
W
wizardforcel 已提交
156
| / | 除法运算符 |
W
wizardforcel 已提交
157 158 159 160 161 162 163 164 165 166 167 168 169
| % | 余数运算符 |

### 示例 6:简单的算术运算

```swift
print(10 + 20)
print(10 - 20)
print(2 * 5)
print(5 / 2 ) //division operator
print(5 % 2 ) //remainder operator
print("I love " + "Swift") //operator can also be used to concatenate string 
```

W
wizardforcel 已提交
170
运行该程序时,输出为:
W
wizardforcel 已提交
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

```swift
30
-10
10
2
1
I love Swift 
```

### 示例 7:算术运算符

您可以使用赋值运算符将结果存储到变量或常量中,如下所示:

```swift
let x = 10 / 5
let y = 3 % 2
print(x)
print(y) 
```

W
wizardforcel 已提交
192
运行该程序时,输出为:
W
wizardforcel 已提交
193 194 195 196 197 198 199 200 201 202

```swift
2
1 
```

* * *

## 3.比较运算符

W
wizardforcel 已提交
203 204 205
这些运算符使您可以比较两个值。 每个比较运算符均返回`Bool`值以指示该语句是否为真。 Swift 支持以下类型的比较运算符:

Swift Comparison Operators
W
wizardforcel 已提交
206

W
wizardforcel 已提交
207
| 运算符 | 含义 | 示例 |
W
wizardforcel 已提交
208
| --- | --- | --- |
W
wizardforcel 已提交
209 210 211 212 213 214
| `==` | 等于 | `5 == 3`求值为`false` |
| `!=` | 不等于 | `5 != 3`求值为`true` |
| `>` | 大于 | `5 > 3`求值为 `true` |
| `<` | 小于 | `5 < 3`求值为`false` |
| `>=` | 大于或等于 | `5 >= 5`求值为`true` |
| `<=` | 小于或等于 | `4 <= 5`求值为`true` |
W
wizardforcel 已提交
215 216 217 218 219 220 221 222 223

### 示例 8:比较运算符

```swift
let msg = "Hello"
print(msg == "Hello")
print(msg != "Hello") 
```

W
wizardforcel 已提交
224
运行该程序时,输出为:
W
wizardforcel 已提交
225 226 227 228 229 230 231 232 233 234 235 236 237 238 239

```swift
true
false
```

### 示例 9:大于和小于比较运算符

```swift
print(10 > 20)
print(10 < 20)
print(5 >= 5)
print(5 <= 4) 
```

W
wizardforcel 已提交
240
运行该程序时,输出为:
W
wizardforcel 已提交
241 242 243 244 245 246 247 248 249 250 251 252

```swift
false
true
true
false 
```

* * *

## 4.逻辑运算符

W
wizardforcel 已提交
253 254 255
这些运算符与布尔(逻辑)值一起使用,并返回布尔值。 它主要用于通过`if else``while`或其他一些控制语句来控制程序流。

Swift Logical Operators
W
wizardforcel 已提交
256

W
wizardforcel 已提交
257
| 运算符 | 含义 | 示例 |
W
wizardforcel 已提交
258
| --- | --- | --- |
W
wizardforcel 已提交
259
| <code>&#124;&#124;</code> | 逻辑或; 如果任一布尔表达式为`true`,则为`true` | <code>false &#124;&#124; true</code>求值为`true` |
W
wizardforcel 已提交
260
| `&&` | 逻辑与; 如果所有布尔表达式均为`true`,则为`true` | `false && true`求值为`false` |
W
wizardforcel 已提交
261 262 263 264 265 266 267 268 269

### 示例 10:逻辑运算符

```swift
print(true && true)
print(true && false)
print(false || true) 
```

W
wizardforcel 已提交
270
运行该程序时,输出为:
W
wizardforcel 已提交
271 272 273 274 275 276 277

```swift
true
false
true
```

W
wizardforcel 已提交
278
本文介绍了 Swift 中的一些基本运算符。 但是,Swift 中很少有更高级的运算符,例如[范围运算符](/swift-programming/ranges "Swift ranges")[Nil 折叠运算符](/swift-programming/optionals#nil-coalescing "Swift Nil-Coalescing operation on optionals"),您将在接下来的教程中学习。
W
wizardforcel 已提交
279

W
wizardforcel 已提交
280
接下来,您将了解 Swift 运算符的[优先级和关联性](/swift-programming/operator-precedence-associativity "Swift operator precedence and associativity")。 简而言之,这是表达式中这些操作的执行顺序。