📅  最后修改于: 2023-12-03 15:35:13.149000             🧑  作者: Mango
Swift是一种现代化的编程语言,支持多种运算符用于操作数学运算、位运算、逻辑运算以及区间运算等。本文将介绍Swift的各种运算符以及其使用。
Swift支持常见的算数运算符,包括加法、减法、乘法、除法和求余数。例如:
let a = 10
let b = 3
let c = a + b // 13
let d = a - b // 7
let e = a * b // 30
let f = a / b // 3
let g = a % b // 1
Swift还支持增量赋值运算符,例如+=
、-=
、*=
和/=
,用于在原有的数值上进行加减乘除运算。
Swift支持各种比较运算符,包括>
、<
、>=
、<=
、==
和!=
。例如:
let a = 10
let b = 3
let c = a > b // true
let d = a < b // false
let e = a >= b // true
let f = a <= b // false
let g = a == b // false
let h = a != b // true
注意,在Swift中,比较运算符返回的结果是Bool类型,即true
或false
。
Swift支持逻辑运算符,包括&&
、||
和!
。例如:
let a = true
let b = false
let c = a && b // false
let d = a || b // true
let e = !a // false
逻辑运算符用于Boolean类型的运算。
Swift支持两种区间运算符,包括闭区间运算符和半闭区间运算符。闭区间运算符用...
表示,半闭区间运算符用..<
表示。例如:
let a = 1...10 // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let b = 1..<10 // [1, 2, 3, 4, 5, 6, 7, 8, 9]
在上述例子中,闭区间运算符返回了1到10之间的所有整数,包括1和10;半闭区间运算符返回了1到9之间的所有整数,不包括10。
Swift支持各种位运算符,包括按位与、按位或、按位异或和按位取反。例如:
let a: UInt8 = 0b10101010
let b: UInt8 = 0b11001100
let c = a & b // 0b10001000
let d = a | b // 0b11101110
let e = a ^ b // 0b01100110
let f = ~a // 0b01010101
在上述例子中,a
和b
分别表示二进制数0b10101010和0b11001100。按位与运算返回的结果是0b10001000,按位或运算返回的结果是0b11101110,按位异或运算返回的结果是0b01100110,按位取反运算返回的结果是0b01010101。
另外,Swift还支持移位运算符,包括左移运算符<<
和右移运算符>>
。移位运算符的作用是将二进制数向左或向右移动指定位数。例如:
let a: UInt8 = 0b00001111
let b = a << 2 // 0b00111100
let c = a >> 2 // 0b00000011
在上述例子中,a
表示二进制数0b00001111。左移运算符<<
将0b00001111向左移动2位,返回的结果是0b00111100;右移运算符>>
将0b00001111向右移动2位,返回的结果是0b00000011。
Swift支持两种恒等运算符,包括恒等运算符===
和不恒等运算符!==
。这两个运算符用于判断两个实例对象是否引用同一个实例。例如:
class MyClass {}
let obj1 = MyClass()
let obj2 = MyClass()
let obj3 = obj1
let a = obj1 === obj2 // false
let b = obj1 === obj3 // true
let c = obj1 !== obj2 // true
let d = obj1 !== obj3 // false
在上述例子中,MyClass
是一个类,obj1
和obj2
都是这个类的实例对象,但是它们引用了不同的实例;obj3
引用和obj1
相同的实例。恒等运算符===
和不恒等运算符!==
的返回结果都是Bool类型。
本文介绍了Swift的各种运算符,包括算数运算符、比较运算符、逻辑运算符、区间运算符、位运算符和恒等运算符。这些运算符能够满足各种不同的编程需求,使得Swift成为非常灵活和强大的编程语言。