Solidity - 运算符



什么是运算符?

让我们来看一个简单的表达式4 + 5 等于 9。这里 4 和 5 称为操作数,而 '+' 称为运算符。Solidity 支持以下类型的运算符。

  • 算术运算符
  • 比较运算符
  • 逻辑(或关系)运算符
  • 赋值运算符
  • 条件(或三元)运算符

让我们逐一看看所有运算符。

算术运算符

Solidity 支持以下算术运算符:

假设变量 A 为 10,变量 B 为 20,则:

显示示例

序号 运算符 & 描述
1

+ (加法)

将两个操作数相加

例:A + B 将得到 30

2

- (减法)

从第一个操作数中减去第二个操作数

例:A - B 将得到 -10

3

* (乘法)

将两个操作数相乘

例:A * B 将得到 200

4

/ (除法)

将分子除以分母

例:B / A 将得到 2

5

% (取模)

输出整数除法的余数

例:B % A 将得到 0

6

++ (自增)

将整数值增加一

例:A++ 将得到 11

7

-- (自减)

将整数值减少一

例:A-- 将得到 9

比较运算符

Solidity 支持以下比较运算符:

假设变量 A 为 10,变量 B 为 20,则:

显示示例

序号 运算符 & 描述
1

== (等于)

检查两个操作数的值是否相等,如果相等,则条件为真。

例:(A == B) 为假。

2

!= (不等于)

检查两个操作数的值是否相等,如果不相等,则条件为真。

例:(A != B) 为真。

3

> (大于)

检查左侧操作数的值是否大于右侧操作数的值,如果大于,则条件为真。

例:(A > B) 为假。

4

< (小于)

检查左侧操作数的值是否小于右侧操作数的值,如果小于,则条件为真。

例:(A < B) 为真。

5

>= (大于等于)

检查左侧操作数的值是否大于或等于右侧操作数的值,如果大于或等于,则条件为真。

例:(A >= B) 为假。

6

<= (小于等于)

检查左侧操作数的值是否小于或等于右侧操作数的值,如果小于或等于,则条件为真。

例:(A <= B) 为真。

逻辑运算符

Solidity 支持以下逻辑运算符:

假设变量 A 为 10,变量 B 为 20,则:

显示示例

序号 运算符 & 描述
1

&& (逻辑与)

如果两个操作数都不为零,则条件为真。

例:(A && B) 为真。

2

|| (逻辑或)

如果两个操作数中任何一个不为零,则条件为真。

例:(A || B) 为真。

3

! (逻辑非)

反转其操作数的逻辑状态。如果条件为真,则逻辑非运算符将使其为假。

例:! (A && B) 为假。

位运算符

Solidity 支持以下位运算符:

假设变量 A 为 2,变量 B 为 3,则:

显示示例

序号 运算符 & 描述
1

& (按位与)

它对每个整数参数的每一位执行布尔与运算。

例:(A & B) 为 2。

2

| (按位或)

它对每个整数参数的每一位执行布尔或运算。

例:(A | B) 为 3。

3

^ (按位异或)

它对每个整数参数的每一位执行布尔异或运算。异或意味着操作数一或操作数二为真,但两者不同时为真。

例:(A ^ B) 为 1。

4

~ (按位非)

它是一个一元运算符,通过反转操作数中的所有位来操作。

例:(~B) 为 -4。

5

<< (左移)

它将第一个操作数中的所有位向左移动第二个操作数中指定的位数。新的位用零填充。将值左移一位相当于将其乘以 2,左移两位相当于将其乘以 4,依此类推。

例:(A << 1) 为 4。

6

>> (右移)

二进制右移运算符。左侧操作数的值向右移动右侧操作数指定的位数。

例:(A >> 1) 为 1。

7

>>> (带零的右移)

此运算符类似于 >> 运算符,只是左侧移入的位始终为零。

例:(A >>> 1) 为 1。

赋值运算符

Solidity 支持以下赋值运算符:

显示示例

序号 运算符 & 描述
1

= (简单赋值)

将右侧操作数的值赋给左侧操作数

例:C = A + B 将 A + B 的值赋给 C

2

+= (加法赋值)

它将右侧操作数添加到左侧操作数,并将结果赋给左侧操作数。

例:C += A 等效于 C = C + A

3

-= (减法赋值)

它从左侧操作数中减去右侧操作数,并将结果赋给左侧操作数。

例:C -= A 等效于 C = C - A

4

*= (乘法赋值)

它将右侧操作数与左侧操作数相乘,并将结果赋给左侧操作数。

例:C *= A 等效于 C = C * A

5

/= (除法赋值)

它将左侧操作数除以右侧操作数,并将结果赋给左侧操作数。

例:C /= A 等效于 C = C / A

6

%= (取模赋值)

它使用两个操作数进行取模运算,并将结果赋给左侧操作数。

例:C %= A 等效于 C = C % A

注意 - 位运算符也适用相同的逻辑,因此它们将变成 <<=、>>=、>>=、&=、|= 和 ^=。

条件运算符 (? :)

条件运算符首先评估表达式的真假值,然后根据评估结果执行两个给定语句中的一个。

显示示例

序号 运算符和描述
1

? : (条件)

如果条件为真?则值为 X:否则值为 Y

广告