下面是 Solidity 中常用的运算符:
算术运算符:+、-、*、/、%,用于数字运算。
逻辑运算符:&&、||、!,用于逻辑判断。
位运算符:&、|、^、~、<<、>>,用于二进制数的运算。
关系运算符:==、!=、<、>、<=、>=,用于比较。
三元运算符:? :,用于三目运算。
赋值运算符:=、+=、-=、*=、/=、%=,用于赋值。
contract Example {
uint a = 10;
uint b = 20;
uint f;
bool is;
// 赋值运算符
function assignOperator() public pure {
f = a; // f = 10;
}
// 算术运算符
function arithmeticOperator() public pure {
f = a + b; // 加法运算 f = 10 + 20;
f = a - b; // 减法运算 f = 10 - 20;
f = a * b; // 乘法运算 f = 10 * 20;
f = a / b; // 除法运算 f = 10 / 20;
f = a % b; // 取模运算,结果为0
}
// 逻辑运算符
function logicalOperator() public pure {
is = (a == b); // 相等运算,结果为false
is = (a != b); // 不相等运算,结果为true
is = (a > b); // 大于运算,结果为false
is = (a >= b); // 大于等于运算,结果为false
is = (a < b); // 小于运算,结果为true
is = (a <= b); //小于等于运算,结果为true
is = a > b || a != b; // 逻辑或运算,结果为true
is = a < b && a != b; // 逻辑与运算,结果为true
is = !(a == b); // 逻辑非运算,结果为true
}
// 位运算符
function bitOperator() public pure {
f = a & b; // 按位与运算 &, f = 10 & 20;
f = a | b; // 按位或运算 |, f = 10 | 20;
f = a ^ b; // 按位异或运算 ^,f = 10 ^ 20;
f = ~a; // 取反运算 ~, f = ~10;
}
// 位移运算符
function shiftOperator() public pure {
f = a << 2; // 左移运算 <<, f = 10 << 2;
f = a >> 2; // 右移运算 >>, f = 10 >> 2;
}
uint256 public x = 0;
uint256 public y = 1;
// 三目运算符
function ternaryOperatorExample() public view returns (uint256) {
return x > y ? x : y; // 如果 x 大于 y,返回 x,否则返回 y
}
}