在 State Variables 以及 Function modifier 中,我們介紹了 Require & Revert ,就只剩下 Assert 沒有提到了,因此今天就來大整理一下關於這三個 built-in function 的差異在哪邊吧!
本日測試的合約:
pragma solidity ^0.4.25;
contract Test {
bool isValid;
constructor() public {
isValid = true;
}
function f1() public returns (int) {
isValid = false;
assert(false);
return 0;
}
function f2() public returns (int) {
isValid = false;
require(false, "REQUIRE");
return 0;
}
function f3() public returns (int) {
isValid = false;
revert("REVERT");
return 0;
}
}
本日影片:
https://youtu.be/K7hd7uxxK-U
Smart Contract 實戰教學播放清單:
https://www.youtube.com/playlist?list=PLHmOMPRfmOxSJcrlwyandWYiuP9ZAMYoF