Swift 提供了多种运算符来执行基本的数学运算和逻辑操作。这些运算符使得代码更加简洁和易读。本章将详细介绍 Swift 中各种运算符的使用方法。
算术运算符
Swift 支持常见的算术运算符,包括加法、减法、乘法、除法和取余运算。下面将分别介绍这些运算符。
加法运算符 (+)
加法运算符用于将两个数值相加。例如:
let sum = 5 + 10 // sum 的值为 15
减法运算符 (-)
减法运算符用于从一个数值中减去另一个数值。例如:
let difference = 50 - 30 // difference 的值为 20
乘法运算符 (*)
乘法运算符用于将两个数值相乘。例如:
let product = 4 * 7 // product 的值为 28
除法运算符 (/)
除法运算符用于将一个数值除以另一个数值。结果总是浮点数。例如:
let quotient = 50 / 3 // quotient 的值为 16.666666666666668
如果需要整数除法的结果,可以使用类型转换或显式指定类型。例如:
let integerQuotient: Int = 50 / 3 // integerQuotient 的值为 16
取余运算符 (%)
取余运算符用于获取两个数值相除后的余数。例如:
let remainder = 50 % 3 // remainder 的值为 2
复合赋值运算符
复合赋值运算符将算术运算符与赋值运算符结合在一起,使代码更加简洁。例如:
var counter = 10 counter += 5 // 相当于 counter = counter + 5 // counter 的值为 15
增量运算符 (+=)
增量运算符用于增加变量的值。例如:
var count = 10 count += 1 // count 的值为 11
减量运算符 (-=)
减量运算符用于减少变量的值。例如:
var count = 10 count -= 1 // count 的值为 9
乘量运算符 (*=)
乘量运算符用于将变量乘以某个数值。例如:
var count = 10 count *= 2 // count 的值为 20
除量运算符 (/=)
除量运算符用于将变量除以某个数值。例如:
var count = 10 count /= 2 // count 的值为 5
取余运算符 (%=)
取余运算符用于更新变量的值为其与某个数值的余数。例如:
var count = 10 count %= 3 // count 的值为 1
比较运算符
比较运算符用于比较两个值,并返回一个布尔值。Swift 支持以下几种比较运算符:
等于运算符 (==)
等于运算符用于检查两个值是否相等。例如:
let x = 5 let y = 10 if x == y { print("x 和 y 相等") } else { print("x 和 y 不相等") }
不等于运算符 (!=)
不等于运算符用于检查两个值是否不相等。例如:
let x = 5 let y = 10 if x != y { print("x 和 y 不相等") } else { print("x 和 y 相等") }
大于运算符 (>)
大于运算符用于检查左边的值是否大于右边的值。例如:
let x = 5 let y = 10 if x > y { print("x 大于 y") } else { print("x 不大于 y") }
小于运算符 (<)
小于运算符用于检查左边的值是否小于右边的值。例如:
let x = 5 let y = 10 if x < y { print("x 小于 y") } else { print("x 不小于 y") }
大于等于运算符 (>=)
大于等于运算符用于检查左边的值是否大于或等于右边的值。例如:
let x = 5 let y = 10 if x >= y { print("x 大于或等于 y") } else { print("x 不大于或等于 y") }
小于等于运算符 (<=)
小于等于运算符用于检查左边的值是否小于或等于右边的值。例如:
let x = 5 let y = 10 if x <= y { print("x 小于或等于 y") } else { print("x 不小于或等于 y") }
逻辑运算符
逻辑运算符用于组合多个条件表达式,并返回一个布尔值。Swift 支持以下几种逻辑运算符:
逻辑与运算符 (&&)
逻辑与运算符用于检查两个条件是否都为真。只有当两个条件都为真时,整个表达式才为真。例如:
let isSunny = true let hasUmbrella = false if isSunny && hasUmbrella { print("可以出去散步") } else { print("不能出去散步") }
逻辑或运算符 (||)
逻辑或运算符用于检查两个条件中是否有至少一个为真。只要有一个条件为真,整个表达式就为真。例如:
let isSunny = true let hasUmbrella = false if isSunny || hasUmbrella { print("可以出去散步") } else { print("不能出去散步") }
逻辑非运算符 (!)
逻辑非运算符用于反转一个条件表达式的布尔值。如果条件为真,则结果为假;如果条件为假,则结果为真。例如:
let isSunny = true if !isSunny { print("今天不是晴天") } else { print("今天是晴天") }
位运算符
位运算符用于对整数的二进制位进行操作。Swift 支持以下几种位运算符:
位与运算符 (&)
位与运算符用于将两个整数的二进制位进行逐位与操作。只有当两个对应的二进制位都为 1 时,结果中的对应位才为 1。例如:
let a: UInt8 = 5 // 二进制表示为 00000101 let b: UInt8 = 3 // 二进制表示为 00000011 let result = a & b // 结果为 00000001,即十进制的 1
位或运算符 (|)
位或运算符用于将两个整数的二进制位进行逐位或操作。只要两个对应的二进制位中有任何一个为 1,则结果中的对应位就为 1。例如:
let a: UInt8 = 5 // 二进制表示为 00000101 let b: UInt8 = 3 // 二进制表示为 00000011 let result = a | b // 结果为 00000111,即十进制的 7
位异或运算符 (^)
位异或运算符用于将两个整数的二进制位进行逐位异或操作。只有当两个对应的二进制位不同,结果中的对应位才为 1。例如:
let a: UInt8 = 5 // 二进制表示为 00000101 let b: UInt8 = 3 // 二进制表示为 00000011 let result = a ^ b // 结果为 00000110,即十进制的 6
位取反运算符 (~)
位取反运算符用于将一个整数的二进制位进行逐位取反操作。所有位都被翻转,1 变成 0,0 变成 1。例如:
let a: UInt8 = 5 // 二进制表示为 00000101 let result = ~a // 结果为 11111010,即十进制的 -6
左移运算符 (<<)
左移运算符用于将一个整数的所有二进制位向左移动指定的位数。相当于将该整数乘以 2 的指定次幂。例如:
let a: UInt8 = 5 // 二进制表示为 00000101 let result = a << 2 // 结果为 00010100,即十进制的 20
右移运算符 (>>)
右移运算符用于将一个整数的所有二进制位向右移动指定的位数。相当于将该整数除以 2 的指定次幂。例如:
let a: UInt8 = 20 // 二进制表示为 00010100 let result = a >> 2 // 结果为 00000101,即十进制的 5
以上介绍了 Swift 中常用的运算符及其用法。理解并熟练掌握这些运算符对于编写高效的 Swift 代码至关重要。