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

! (逻辑非)

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

例如:! (A && B) 是错误的。

按位运算符

Solidity 支持以下按位运算符 −

假设变量 A 持有 2,变量 B 持有 3,则 −

显示示例

序号 运算符和描述
1

& (按位与)

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

例如:(A & B)是 2。

2

| (按位或)

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

例如: (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

? : (Conditional )

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