Blockchain
函式修飾符主體
我們知道修飾符是添加到函式中的一種安全級別,但是為什麼修飾符主體應該包含
_;
,如果我們不使用這個符號,我們會得到錯誤:SyntaxError:修飾符主體不包含“_”。
在函式之前檢查函式修飾符。
_;
本質上表明可以在此處執行其餘功能。認為這是不必要的可能很誘人。然而,經常被忽略的是後面可能有程式碼_;
modifier noReentrancy() { require(!locked, "No reentrancy"); locked = true; _; locked = false; }
在這裡,
require
語句 和locked=true;
將在函式的其餘部分之前執行。並且一旦函式完成,locked = false;
就會被執行。我希望現在有一個分隔符的意義
_;
更清楚了。