Swift 运算符
封面图
•
2025-10-16
•
Swift
0
0
0
0
在 **Swift** 中,运算符(Operators)用于对一个或多个操作数(operands)执行操作。Swift 支持多种类型的运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符等。 --- ## 一、Swift 常见的运算符类型 ### 1. 算术运算符(Arithmetic Operators) | 运算符 | 说明 | 示例 | |--------|--------------|----------------| | `+` | 加法 | `3 + 4` → `7` | | `-` | 减法 | `5 - 2` → `3` | | `*` | 乘法 | `2 * 3` → `6` | | `/` | 除法 | `6 / 2` → `3` | | `%` | 取余 | `7 % 3` → `1` | > 注意:Swift 的整数除法会直接截断小数部分,例如 `5 / 2` 结果是 `2`。 --- ### 2. 比较运算符(Comparison Operators) | 运算符 | 说明 | 示例 | |--------|------------------|------------------| | `==` | 等于 | `3 == 3` → `true`| | `!=` | 不等于 | `3 != 4` → `true`| | `>` | 大于 | `5 > 3` → `true` | | `<` | 小于 | `2 < 4` → `true` | | `>=` | 大于等于 | `5 >= 5` → `true`| | `<=` | 小于等于 | `3 <= 4` → `true`| --- ### 3. 逻辑运算符(Logical Operators) | 运算符 | 说明 | 示例 | |--------|--------------------|-------------------------------| | `&&` | 逻辑与(AND) | `true && false` → `false` | | `||` | 逻辑或(OR) | `true || false` → `true` | | `!` | 逻辑非(NOT) | `!true` → `false` | --- ### 4. 位运算符(Bitwise Operators) | 运算符 | 说明 | 示例 | |--------|-------------------|--------------------------| | `&` | 按位与 | `5 & 3` → `1` (二进制: 101 & 011 = 001) | | `|` | 按位或 | `5 | 3` → `7` (101 | 011 = 111) | | `^` | 按位异或 | `5 ^ 3` → `6` (101 ^ 011 = 110) | | `~` | 按位取反 | `~5` → `-6` (补码表示) | | `<<` | 左移 | `5 << 1` → `10` (101 << 1 = 1010) | | `>>` | 右移 | `5 >> 1` → `2` (101 >> 1 = 10) | > Swift 中的位运算符只适用于整数类型(如 `Int`, `UInt` 等)。 --- ### 5. 赋值运算符(Assignment Operator) | 运算符 | 说明 | 示例 | |--------|------------------|----------------| | `=` | 赋值 | `var x = 5` | Swift 中还有复合赋值运算符: | 运算符 | 等价表达式 | 示例 | |--------|-------------------|------------------| | `+=` | `x = x + y` | `x += y` | | `-=` | `x = x - y` | `x -= y` | | `*=` | `x = x * y` | `x *= y` | | `/=` | `x = x / y` | `x /= y` | | `%=` | `x = x % y` | `x %= y` | --- ### 6. 三元条件运算符(Ternary Conditional Operator) ```swift condition ? valueIfTrue : valueIfFalse ``` 示例: ```swift let max = a > b ? a : b ``` --- ### 7. 区间运算符(Range Operators) | 运算符 | 说明 | 示例 | |--------|-----------------------|---------------------------| | `...` | 闭区间(包含两端) | `1...3` → 1, 2, 3 | | `..<` | 半开区间(不包含末尾)| `1..<3` → 1, 2 | --- ## 二、自定义运算符(Custom Operators) Swift 允许你定义自己的运算符,但必须遵循一定的规则: - 运算符名称必须由以下字符组成:`+`, `-`, `*`, `/`, `%`, `&`, `|`, `^`, `~`, `=`, `<`, `>`, `!`, `?`, `:`, `;`, `,`, `.`, `@`, `#`, `$`, `^`, `&`, `*`, `+`, `-`, `=`, `!`, `?`, `:` 等。 - 自定义运算符不能以数字开头。 - 必须使用 `operator` 关键字声明。 示例: ```swift prefix operator +++ prefix func +++(lhs: inout Int) { lhs += 1 } var x = 5 +++x // x = 6 ``` --- ## 三、运算符重载(Operator Overloading) Swift 允许你为自定义类型重载运算符,比如为 `Vector` 类型定义 `+` 运算符。 示例: ```swift struct Vector { var x: Double var y: Double } func + (lhs: Vector, rhs: Vector) -> Vector { return Vector(x: lhs.x + rhs.x, y: lhs.y + rhs.y) } let v1 = Vector(x: 1, y: 2) let v2 = Vector(x: 3, y: 4) let v3 = v1 + v2 // Vector(x: 4, y: 6) ``` --- ## 四、Swift 运算符优先级和结合性 Swift 中的运算符有默认的优先级和结合性,你可以通过 `precedencegroup` 来自定义。 例如,默认的优先级如下: | 优先级 | 运算符类型 | |--------|------------------------| | 1 | 后缀运算符(如 `x!`) | | 2 | 一元运算符(如 `!x`) | | 3 | 乘法运算符(`*`, `/`, `%`) | | 4 | 加法运算符(`+`, `-`) | | 5 | 比较运算符(`==`, `!=`, `>`, `<`, `>=`, `<=`) | | 6 | 逻辑运算符(`&&`, `||`) | --- 如果你有具体的使用场景或问题,欢迎继续提问!
上一篇:
Swift 字面量
标题录入,一次不能超过6条
返回顶部
留言
留言
评论