Math

未選中的 { … } 塊是否僅適用於目前函式?

  • November 3, 2021

採取以下程式碼片段:

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

引用自:https://ethereum.stackexchange.com/questions/96803