Swift 运算符

Swift 运算符

运算符是告诉编译器执行特定数学或逻辑操作的符号。Objective-C具有丰富的内置运算符,并提供以下类型的运算符-

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 按位运算符
  • 赋值运算符
  • 范围运算符
  • 其他运算符

本教程将逐一解释算术、关系、逻辑、按位、赋值和其他运算符。

算术运算符

下表显示了Swift 4语言支持的所有算术运算符。假设变量 A 的值为10,变量 B 的值为20,则-

操作符 描述 示例
+ 相加两个操作数 A + B将得到30
从第一个操作数减去第二个操作数 A − B将得到-10
* 乘以两个操作数 A * B将得到200
/ 分子除以分母 B / A将得到2
% 取模操作符和整数/浮点数除法后的余数 B % A将得到0

比较运算符

下表显示了Swift 4语言支持的所有关系运算符。假设变量 A 为10,变量 B 为20,那么−

运算符 描述 示例
== 检查两个操作数的值是否相等;如果相等,则条件为真。 (A == B) 不为真。
!= 检查两个操作数的值是否不相等;如果不相等,则条件为真。 (A != B) 为真。
> 检查左操作数的值是否大于右操作数的值;如果是,则条件为真。 (A > B) 不为真。
< 检查左操作数的值是否小于右操作数的值;如果是,则条件为真。 (A < B) 为真。
>= 检查左操作数的值是否大于或等于右操作数的值;如果是,则条件为真。 (A >= B) 不为真。
<= 检查左操作数的值是否小于或等于右操作数的值;如果是,则条件为真。 (A <= B) 为真。

逻辑运算符

下表显示了Swift 4语言支持的所有逻辑运算符。假设变量 A 的值为1,变量 B 的值为0,则结果为−

运算符 描述 示例
&& 逻辑与运算符。如果两个操作数都非零,则条件为真。 (A && B) 为假。
|| 逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (A || B) 为真。
! 逻辑非运算符。用于改变操作数的逻辑状态。如果条件为真,则逻辑非运算符将使其变为假。 !(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
Assume A = 60; and B = 13;

In binary format, they will be as follows:

A = 0011 1100

B = 0000 1101

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

A & B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A = 1100 0011

Swift 4语言支持的位操作符列在下表中。假设变量 A 持有60,变量 B 持有13,则7-

操作符 描述 示例
& 位与运算符,如果两个操作数中都存在该位,则结果中的该位为1,否则为0。 (A & B) 将得到12,即0000 1100
| 位或运算符,如果两个操作数中任意一个存在该位,则结果中的该位为1。 (A | B) 将得到61,即0011 1101
^ 位异或运算符,如果一个操作数中的某一位为1,而另一个操作数中的同一位为0,则结果中的该位为1,否则为0。 (A ^ B) 将得到49,即0011 0001
~ 取反运算符,对操作数的每一位取反。 (~A) 将得到-61,即1100 0011(补码形式)。
<< 左移运算符,将左操作数的值左移右操作数指定的位数。 (A << 2) 将得到240,即1111 0000
>> 右移运算符,将左操作数的值右移右操作数指定的位数。 A >> 2 将得到15,即0000 1111

赋值运算符

Swift 4支持以下赋值运算符 –

运算符 描述 示例
= 简单赋值运算符,将右侧操作数的值赋给左侧操作数 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 = C ^ 2
|= 位或和赋值运算符 C |= 2 等同于 C = C | 2

范围运算符

Swift 4包含两个范围运算符,用于快速表达一系列的值。以下表格解释了这两个运算符。

运算符 描述 示例
闭合范围 (a...b)定义了从a到b的范围,包括a和b的值。 1...5表示1、2、3、4和5
半开放范围 (a..< b)定义了从a到b的范围,但不包括b。 1..< 5表示1、2、3和4
单边范围 a…定义了从a到元素末尾的范围 …a定义了从开头到a的范围 1… 表示1、2、3…元素末尾 …2表示开头…到1、2

其他运算符

Swift 4支持一些其他重要的运算符,包括 范围 和? :,在下表中有解释。

运算符 描述 示例
一元减号 使用前缀-可以切换数值的符号 -3或-4
一元加号 返回操作数的原值,没有任何变化。 +6得到6
三元条件运算符 条件 ? X : Y 如果条件为真,则值为X,否则为Y

运算符优先级

运算符优先级决定了表达式中项的分组方式。这会影响表达式的求值方式。某些运算符的优先级高于其他运算符;例如,乘法运算符的优先级高于加法运算符。

例如,x = 7 + 3 * 2; 在这里,x被赋值为13,而不是20,因为乘法运算符的优先级高于加法运算符,所以它首先与3*2相乘,然后再加上7。

在这里,优先级最高的运算符出现在表格的顶部,优先级最低的出现在底部。在表达式中,优先级高的运算符将先被求值。

运算符 描述 示例
主表达式运算符 () [] . expr++ expr-- 从左到右
一元运算符 * & \+ - ! ~ ++expr --expr * / % \+ - >> << < > <= >= == != 从右到左
二元运算符 & ^ | && || 从左到右
三元运算符 ?: 从右到左
赋值运算符 = += -= *= /= %= >>= <<= &=^= |= 从右到左
逗号 , 从左到右

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程