- Solidity 教程
- Solidity - 首页
- Solidity - 概述
- Solidity - 环境搭建
- Solidity - 基本语法
- Solidity - 第一个应用
- Solidity - 注释
- Solidity - 数据类型
- Solidity - 变量
- Solidity - 变量作用域
- Solidity - 运算符
- Solidity - 循环
- Solidity - 决策
- Solidity - 字符串
- Solidity - 数组
- Solidity - 枚举
- Solidity - 结构体
- Solidity - 映射
- Solidity - 类型转换
- Solidity - 以太币单位
- Solidity - 特殊变量
- Solidity - 样式指南
- Solidity 函数
- Solidity - 函数
- Solidity - 函数修饰符
- Solidity - View 函数
- Solidity - Pure 函数
- Solidity - 回退函数
- 函数重载
- 数学函数
- 加密函数
- Solidity 常用模式
- Solidity - 提款模式
- Solidity - 受限访问
- Solidity 高级
- Solidity - 合约
- Solidity - 继承
- Solidity - 构造函数
- Solidity - 抽象合约
- Solidity - 接口
- Solidity - 库
- Solidity - 汇编
- Solidity - 事件
- Solidity - 错误处理
- Solidity 有用资源
- Solidity - 快速指南
- Solidity - 有用资源
- Solidity - 讨论
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 |