布尔类型
涉及英语
bool 布尔
true 真
false 假
关键字: bool , 可能的取值为常数值 true 和 false。
支持的运算符,
-
- ! (逻辑非)
- && (逻辑与, "and")
- || (逻辑或, "or")
- == (等于)
- != (不等于)
运算符 || 和 && 都遵循同样的短路( short-circuiting )规则。
就是说在表达式 f(x) || g(y) 中, 如果 f(x) 的值为 true , 那么 g(y) 就不会被执行,即使会出现一些副作用。
布尔类型,基本使用方法, 以及可能短路的问题
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract My {
bool a = true;
bool b = false;
event log(uint256 x);
function test1() public view returns (bool) {
return !a;
}
function test2() public view returns (bool) {
return a && b;
}
function test3() public view returns (bool) {
return a || b;
}
function test4() public view returns (bool) {
return a == b;
}
function test5() public view returns (bool) {
return a != b;
}
function nameTrue() public returns (bool) {
emit log(2);
return true;
}
function nameFalse() public returns (bool) {
emit log(3);
return false;
}
function name() public returns (bool) {
emit log(1);
return nameFalse() && nameTrue();
}
function name2() public returns (bool) {
emit log(1);
return nameFalse() || nameTrue();
}
}