Math
未選中的 { … } 塊是否僅適用於目前函式?
採取以下程式碼片段:
pragma solidity ^0.8.0; contract MyContract { function foo() public returns (uint256 result) { // do unsafe work } function bar() public returns (uint256 result) { unchecked { uint256 foo_value = foo(); // do safe work } }
unchecked
函式中的塊是否bar
禁用函式中的安全檢查foo
?
unchecked
查看Solidity 0.8.0 的文件,似乎並沒有bar
禁用foo
..該設置僅影響語法上位於塊內的語句。從未經檢查的塊中呼叫的函式不會繼承該屬性。
https://docs.soliditylang.org/en/v0.8.0/control-structures.html#checked-or-unchecked-arithmetic