Solidity 支持的逻辑运算符,如下表所示:
假设变量A的值为10,变量B的值为20。
序号 | 运算符与描述 |
---|---|
1 |
&& (逻辑与) 如果两个操作数都非零,则条件为真。 例: (A && B) 为真 |
2 |
|| (逻辑或) 如果这两个操作数中有一个非零,则条件为真。 例: (A || B) 为真 |
3 |
! (逻辑非) 反转操作数的逻辑状态。如果条件为真,则逻辑非操作将使其为假。 例: ! (A && B) 为假 |
示例
下面的代码展示了如何使用逻辑运算符
pragma solidity ^0.5.0;
contract SolidityTest {
uint storedData; // 状态变量
constructor() public{
storedData = 10;
}
function getResult() public view returns(string memory){
uint a = 1; // 局部变量
uint b = 2;
uint result = a + b;
return integerToString(storedData); // 访问状态变量
}
function integerToString(uint _i) internal pure
returns (string memory) {
if (_i == 0) {
return "0";
}
uint j = _i;
uint len;
while (!(j == 0)) { // 逻辑运算符
len++;
j /= 10;
}
bytes memory bstr = new bytes(len);
uint k = len - 1;
while (_i != 0) {
bstr[k--] = byte(uint8(48 + _i % 10));
_i /= 10;
}
return string(bstr);
}
}
可以参考Solidity – 第一个程序中的步骤,运行上述程序。
输出
0: string: 3