学习笔记-Swift 运算符
在 Swift 编程语言中,运算符(Operators) 是用于执行特定操作的符号。以下是 Swift 支持的运算符分类及详细说明:
一、算术运算符
- 基本算术:
▼swift复制代码
let a = 10 + 5 // 加 let b = 10 - 5 // 减 let c = 10 * 5 // 乘 let d = 10 / 3 // 除(结果为 3) let e = 10 % 3 // 取余(结果为 1) - 浮点数取余:
▼swift复制代码
let f = 10.5.truncatingRemainder(dividingBy: 3) // 1.5
二、复合赋值运算符
▼swift复制代码var x = 5 x += 3 // x = 8 x -= 2 // x = 6 x *= 4 // x = 24
三、比较运算符
▼swift复制代码1 == 1 // true 1 != 2 // true 2 > 1 // true 2 < 5 // true 3 >= 3 // true // 恒等运算符(判断对象引用) let obj1 = UIView() let obj2 = obj1 obj1 === obj2 // true
四、逻辑运算符
▼swift复制代码true && false // false(逻辑与) true || false // true (逻辑或) !true // false(逻辑非) // 短路求值:若左侧已确定结果,右侧不会执行 false && someExpensiveFunction()
五、三元条件运算符
▼swift复制代码let score = 85 let result = score >= 60 ? "及格" : "不及格" // "及格"
六、Nil 合并运算符
▼swift复制代码let defaultName = "Guest" var userName: String? = nil let finalName = userName ?? defaultName // "Guest"
七、区间运算符
- 闭区间 (
a...b):▼swift复制代码for i in 1...5 { print(i) } // 输出 1-5 - 半开区间 (
a..<b):▼swift复制代码let names = ["A", "B", "C"] for i in 0..<names.count { print(names[i]) } - 单侧区间:
▼swift复制代码
let range = ...5 // 包含所有小于等于5的数
八、位运算符
▼swift复制代码let a: UInt8 = 0b00110011 let b: UInt8 = 0b11100001 a & b // 按位与 (0b00100001) a | b // 按位或 (0b11110011) a ^ b // 按位异或 (0b11010010) ~a // 按位取反 (0b11001100) a << 2 // 左移两位 (0b11001100)
九、溢出运算符
处理数值溢出场景:
▼swift复制代码let maxUInt8 = UInt8.max // 255 let overflow = maxUInt8 &+ 1 // 0(溢出后归零)
十、运算符优先级与结合性
优先级从高到低示例(完整列表参考官方文档):
[]()(成员访问、函数调用)!~+-(前缀运算符)*/%+-<<>><<=>>===!=&&||- 三元运算符
?:
十一、自定义运算符
Swift 允许定义新运算符或重载现有运算符:
▼swift复制代码// 定义幂运算符 infix operator ** : MultiplicationPrecedence func ** (base: Int, power: Int) -> Int { return Int(pow(Double(base), Double(power))) } print(2 ** 3) // 8
关键特性
- 类型安全:禁止隐式类型转换(如
Int + Double需显式转换)。 - 运算符重载:可为自定义类型实现运算符逻辑。
- 空安全:可选类型需解包后才能参与运算(使用
??或强制解包)。
通过合理使用运算符,可以编写简洁高效的 Swift 代码。
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
