【stateMutability】

除了以上的可視性之外,我們還可以增加一些函數的敘述來定義這個函數的類型。

function myFunction() <visibility specifier> <stateMutability> returns (bool) {
    return true;
}
  • pure : 不允許修改或訪問

  • view : 不允許修改狀態變量

  • payable : 允許函數在調用同時接收 Ether,只有宣告 payable 的物件才可以進行交易

View vs. Pure

  • 在早些版本他們被稱為constant函數

  • View Function: 可閱讀但不可更改任何狀態變數

  • Pure Function: 不可閱讀也不可更改任何狀態變數

Pure Function

  • 可以呼叫其他的Pure function

  • 不可以呼叫View function,也不可以呼叫其他的沒有標明Pure或View,但卻會更改到狀態的函數(也被稱作Writing function)

  • 不可以讀取或對狀態變數做任何更改

View Function

  • 可以存取任何的狀態變數,但僅能做讀取用,不可進行修改。

  • 可以呼叫其他的Pure function

  • 不可以呼叫其他的沒有標明pureview,會更改到狀態的函數(也被稱作Writing function)

Last updated