目录

Swift - 运算符

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

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 按位运算符
  • 分配运算符
  • 范围运算符
  • 其它运算符

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

算术运算符 (Arithmetic Operators)

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

操作者 描述
+ 添加两个操作数 A + B将给出30
从第一个减去第二个操作数 A - B将给-10
* 将两个操作数相乘 A * B将给出200
/Divides numerator by denominator B/A会给2
% 模数运算符和整数/浮点除法后的余数 B%A将给出0

比较运算符 (Comparison Operators)

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

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

逻辑运算符 (Logical Operators)

下表显示了Swift 4语言支持的所有逻辑运算符。 假设变量A保持1而变量B保持0,则 -

操作者 描述
&& 称为逻辑AND运算符。 如果两个操作数都不为零,则条件成立。 (A && B)是假的。
|| 称为逻辑OR运算符。 如果两个操作数中的任何一个非零,则条件变为真。 (A || B)是真的。
! 称为逻辑非运算符。 用于反转其操作数的逻辑状态。 如果条件为真,则Logical NOT运算符将使其为false。 !(A && B)是真的。

按位运算符 (Bitwise Operators)

按位运算符处理位并执行逐位操作。 &,|和^的真值表如下 -

p q p&Q p | Q p ^ Q
00000
01011
11110
10011
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-

操作者 描述
& 二进制AND运算符将一个位复制到结果中(如果它存在于两个操作数中)。 (A&B)将给出12,即0000 1100
| 二进制OR运算符复制一个位,如果它存在于任一操作数中。 (A | B)将给出61,即0011 1101
^ 二进制异或运算符复制该位,如果它在一个操作数中设置但不是两者都设置。 (A ^ B)将给出49,即0011 0001
~ 二元一元补语运算符是一元的,具有“翻转”位的效果。 (~A)将给出-61,即2的补码形式的1100 0011。
<< 二进制左移运算符。 左操作数值向左移动右操作数指定的位数。 (A << 2将给出240,即1111 0000
>> 二进制右移运算符。 左操作数值向右移动右操作数指定的位数。 A >> 2将给出15,即0000 1111

赋值操作符 (Assignment Operators)

SSwift 4支持以下赋值运算符 -

操作者 描述
= 简单赋值运算符,将右侧操作数的值分配给左侧操作数 C = A + B将A + B的值分配给C
+= 添加AND赋值运算符,它将右操作数添加到左操作数并将结果赋给左操作数 C + = A等于C = C + A.
-= 减去AND赋值运算符,它从左操作数中减去右操作数,并将结果赋给左操作数 C - = A相当于C = C - A.
*= 乘以AND赋值运算符,它将右操作数与左操作数相乘,并将结果赋给左操作数 C * = A等于C = C * A.
/= 除以AND赋值运算符,它将左操作数除以右操作数,并将结果赋给左操作数 C/= A相当于C = C/A.
%= 模数AND赋值运算符,它使用两个操作数获取模数,并将结果赋给左操作数 C%= A等于C = C%A
<<= 左移AND赋值运算符 C << = 2与C = C << 2相同
>>= 右移AND赋值运算符 C >> = 2与C = C >> 2相同
&= 按位AND赋值运算符 C&= 2与C = C&2相同
^= 按位异或和赋值运算符 C ^ = 2与C = C ^ 2相同
|= 按位包含OR和赋值运算符 C | = 2与C = C |相同 2

范围运算符

Swift 4包括两个范围运算符,它们是表示一系列值的快捷方式。 下表解释了这两个运算符。

操作者 描述
封闭范围 (a ... b)定义从a到b的范围,并包括值a和b。 1 ... 5给出1,2,3,4和5
Half-Open Range (a .. 1 .. <5给出1,2,3和4
单侧范围

a ...,定义从元素到结尾的范围

... a,定义从start到a的范围

1 ...给出1,2,3 ......元素的结尾

...... 2开始......到1,2

其它运算符

Swift 4支持其他一些重要的运算符,包括range和? :如下表所示。

操作者 描述
Unary Minus(一元减号) 可以使用前缀来切换数值的符号 - -3 or -4
Unary Plus (一元加号) 返回它操作的值,不做任何更改。 +6 gives 6
Ternary Conditional 条件? X:Y 如果条件为真? 然后是值X:否则为Y值

运算符优先

运算符优先级确定表达式中的术语分组。 这会影响表达式的计算方式。 某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级高于加法运算符。

例如,x = 7 + 3 * 2; 这里,x被赋值为13,而不是20,因为operator *的优先级高于+,所以它首先乘以3 * 2然后加到7中。

此处,具有最高优先级的运算符显示在表的顶部,具有最低优先级的运算符显示在底部。 在表达式中,将首先评估更高优先级的运算符。

操作者 描述
主表达式运算符 ()[]。 expr ++ expr-- left-to-right
一元运算符

*&+ - ! 〜++ expr --expr

* /%

+ -

>> <<

<> <=> =

==!=

right-to-left
二元运算符

&

^

|

&&

||

left-to-right
三元运算符 ?:right-to-left
分配运算符 = + = - = * =/=%= >> = << =&= ^ = | = right-to-left
Comma,left-to-right
↑回到顶部↑
WIKI教程 @2018