今日來延續昨日沒有寫完的全域變數。

Error Handlin

//裡面可以做一些條件判斷,如果為false,此次transcation會失敗,通常用於內部錯誤
assert(owner != msg.sender);
//通常用於如果為false 則會還原狀態,通常拿來判斷輸入值對不對 
require(owner != msg.sender);
//同上,只是多了可以輸入自訂的錯誤訊息
require(owner != mag.sender,"not owner");
//執行會直接終止,並且恢復狀態。
revert();
// 同上,但也是可以自訂錯誤的訊息
revert("revert");

數學相關函式

// 此為加法,k 的參數為精度。
addmod(uint x, uint y, uint k) returns (uint)
// 此為減法,k 一樣為精度。
mulmod(uint x, uint y, uint k) returns (uint)
// 做sha256 運算
sha256(bytes memory) returns (bytes32)

其餘的全域變數

//當前位址餘額。
<address>.balance (uint256)
//轉指定額度到該位址,如果失敗會恢復,此操作消耗2300 gas
<address payable>.transfer(uint256 amount)
//跟上面差不多,多了回傳 bool ,告知成功或失敗。
<address payable>.send(uint256 amount) returns (bool)

其他還有更多的介紹,這邊並沒有全部列出來,需要更多詳細的說明,建議直接上 官網 找資料