- 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 - 限制访问
- 坚固进阶
- 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 | !(逻辑非) 反转其操作数的逻辑状态。如果条件为真,则逻辑 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 | ?:(有条件) 如果条件为真?然后值 X :否则值 Y |