swift操作符全解 – Swift最新教程

上一章Swift教程请查看:swift元组,常量和字面量
操作符是一个符号,它告诉编译器执行特定的数学或逻辑操作,Objective-C有丰富的内建操作符,并提供了以下类型的操作符:

  • 算术操作符
  • 比较操作符
  • 逻辑操作符
  • 按位操作符
  • 赋值操作符
  • 范围内操作符
  • 混合操作符
本教程将逐一解释算术、关系、逻辑、按位、赋值和其他操作符。
算术操作符下表显示了Swift语言支持的所有算术操作符,假设变量A=10,变量B=20。
操作符 解释 例子
+ 增加了两个操作数 A + B是30
? 从第一个操作数减去第二个操作数 A – B等于-10
* 增加两个操作数 A * B是200
/ 分子除以分母 B / A给2
% 模运算符和整数/浮点除法后的余数 B % A等于0
比较操作符【swift操作符全解 – Swift最新教程】下表显示了Swift语言支持的所有关系操作符,假设变量A=10,变量B=20。
操作符 解释 例子
== 检查两个操作数的值是否相等; 如果是,则条件为真。 (A == B)不是真的。
!= 检查两个操作数的值是否相等; 如果值不相等,则条件为真。 (A != B)是真的。
>   检查左操作数的值是否大于右操作数的值; 如果是,则条件为真。 (A > B)不是真的。
<   检查左操作数的值是否小于右操作数的值; 如果是,则条件为真。 (A < B)是真的。
> = 检查左操作数的值是否大于或等于右操作数的值; 如果是,则条件为真。 (A > = B)不是真的。
< = 检查左操作数的值是否小于或等于右操作数的值; 如果是,则条件为真。 (A < = B)为真。
逻辑操作符下表显示了Swift语言支持的所有逻辑操作符,假设变量A为1,变量B为0,则为-
操作符 解释 例子
& & 称为逻辑和运算符。如果两个操作数都非零,则条件为真。 (A & & B)是假的。
|| 称为逻辑或运算符。如果两个操作数中的任何一个非零,则条件为真。 (A || B)为真。
! 称为逻辑NOT操作符。用于反转其操作数的逻辑状态。如果条件为真,则逻辑NOT操作符将使其为假。 (A & & B)是真的。
按位操作符位操作符对位进行操作,并逐位执行操作,关于& 、|和^的真值表如下:
p q p& q p|q p^q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
假设 A = 60; B = 13; 在二进制格式中,它们将如下所示:A = 0011 1100B = 0000 1101-----------------A & B = 0000 1100A|B = 0011 1101A^B = 0011 0001~A = 1100 0011

下表列出了支持Swift语言的位操作符,假设变量A有60,变量B有13,然后是7:
操作符 解释 例子
& 如果结果在两个操作数中都存在,那么二进制和运算符将向结果中复制一位。 (A和B)给12,即0000 1100
| 如果二进制或运算符存在于任何一个操作数中,则它将复制一位。 (A | B)将给出61,即0011 1101
^ 如果二进制XOR操作符是在一个操作数中设置的,而不是同时在两个操作数中设置,则它将复制该位。 (A ^ B)是49,也就是00110001
~ 二进制补码操作符是一元的,具有“翻转”位的效果。 (~A)给出-61,它是2的补码形式1100 0011。
< <   二进制左移位运算符。左操作数值由右操作数指定的位数向左移动。 (A < < 2将给出240,即1111 0000
> >   二进制右移位算子。左操作数值按右操作数指定的位数右移。 一个> > 2会得到15,也就是0000 1111
赋值操作符Swift支持以下赋值操作符——
操作符 解释 例子
= 简单赋值运算符,将右侧操作数的值赋值给左侧操作数 C = A + B将A + B的值赋给C
+= 添加和赋值运算符,它将右操作数添加到左操作数并将结果赋值给左操作数 C += A等价于C = C + A
-= 减法和赋值运算符,它从左操作数中减去右操作数并将结果赋值给左操作数 C -= A等价于C = C – A
*= 乘法和赋值运算符,它将右操作数与左操作数相乘,并将结果赋给左操作数 C *= A等价于C = C * A
/= 除法和赋值运算符,它将左操作数和右操作数分开,并将结果赋给左操作数 C /= A等价于C = C / A
%= 模和赋值运算符,它使用两个操作数取模并将结果赋给左操作数 C %= A等价于C = C % A
< < = 左移位和赋值运算符 C < < = 2与C = C < < 2相同
> > = 右移位和赋值运算符 C > > = 2与C = C > > 2相同
& = 位和赋值运算符 C = 2和C = C + 2是一样的
^= 位互斥或和赋值运算符 C ^ 2和C ^ 2是一样的
|= 位包含OR和赋值运算符 C |= 2与C = C | 2相同
范围操作符Swift包含两个范围操作符,它们是表示值范围的快捷方式,下表解释了这两个操作符。
操作符 解释 例子
封闭的范围 (a…b)定义从a到b的范围,包括值a和b。 1……5是1 2 3 4 5
半开的范围 (一个. .< b)定义从a到b的范围,但不包括b。 1 . .< 5得到1 2 3 4
片面的范围 定义了从a到元素结束的范围 …a,定义了从起点到a的范围 1…给出1、2、3…元素的结束 … 2表示开始直到1, 2
混合操作符Swift支持包括range和?:具体见下表。
操作符 解释 例子
一元- 数字值的符号可以使用前缀-来切换 -3 或 -4
一元加 返回它操作的值,不做任何更改。 +6 给出 6
三元条件 条件?X:Y 如果条件为真?然后是值X:否则是值Y
操作符优先级操作符优先级决定了表达式中术语的分组,这将影响表达式的计算方式,某些操作符具有比其他操作符更高的优先级,例如,乘法操作符的优先级高于加法操作符。
例如,x = 7 + 3 * 2; 这里,x被赋值为13,而不是20,因为操作符*的优先级高于+,所以它首先与3*2相乘,然后与7相加。
这里,优先级最高的操作符出现在表的顶部,优先级最低的操作符出现在底部。在表达式中,优先级更高的操作符将首先求值。
操作符 解释 例子
主要表达式操作符 () [] . expr++ expr– 从左到右
一元操作符 * & + – ! ~ ++expr – expr * / % + – > > < < < > < = > = == != 从右到左
二元操作符 & ^ | & & || 从左到右
三元运算符 ?: 从右到左
赋值操作符 = += -= *= /= %= > > = < < = & =^= |= 从右到左
逗号 , 从左到右

    推荐阅读