Solidity

參數前下劃線的作用是什麼?

  • November 19, 2019

我看到在參數名稱前使用下劃線的契約,如下所示:

function Greeter(string _greeting) public
{
  greeting = _greeting;
}

這些下劃線的目的是什麼?它們是否與 Python 中的“內部使用”名稱具有相似的含義?

沒有語義差異。它是一種用於區分函式參數和全域變數的樣式。

在這種情況下,它區分命名的全域變數greeting和相應的函式參數。

在大多數情況下,儲存變數將在整個合約程式碼中的更多地方使用。函式參數可能會出現在一些地方,但在大多數情況下,它不會像儲存變數那樣普遍。

這位開發人員認為,greeter_greeter. 在我的程式碼中,函式參數獲取下劃線前綴,因為我在較少的位置使用它。這使我的其餘程式碼可以自由使用普通變數,而不是帶前綴的變數。

一個不太自以為是的原因是,對於公共變數,使用下劃線前綴名稱也意味著getter函式將具有相同的名稱。這導致了一個合約 ABI,其中一些函式具有下劃線前綴,這可能會讓使用者感到困惑。

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