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语言支持的所有关系操作符,假设变量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 1100

B = 0000 1101

-----------------

A & B = 0000 1100

A|B = 0011 1101

A^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
* / %
+ –
>>
<<
< >
<= >=
== !=
从右到左
二元操作符 &
^
|
&&
||
从左到右
三元运算符 ?: 从右到左
赋值操作符 = += -= *= /= %= >>= <<= &=^=
|=
从右到左
逗号 , 从左到右
微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?