Blockchain

函式修飾符主體

  • January 28, 2022

我們知道修飾符是添加到函式中的一種安全級別,但是為什麼修飾符主體應該包含_;,如果我們不使用這個符號,我們會得到錯誤:

SyntaxError:修飾符主體不包含“_”。

在函式之前檢查函式修飾符。_;本質上表明可以在此處執行其餘功能。認為這是不必要的可能很誘人。然而,經常被忽略的是後面可能有程式碼_;

modifier noReentrancy() {
   require(!locked, "No reentrancy");
   locked = true;
       
   _;
       
   locked = false;
}

在這裡,require語句 和locked=true;將在函式的其餘部分之前執行。並且一旦函式完成,locked = false;就會被執行。

我希望現在有一個分隔符的意義_;更清楚了。

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