Solidity

使用純函式和視圖函式修飾符有什麼好處嗎?

  • October 17, 2017

我有一個不讀取或修改合約狀態的函式:

contract C {

   function add(uint a, uint b) public returns (uint) {
       uint res = a + b;
       return res;
   }

}

使用 pure/view 修飾符有意義嗎?我的意思是,之後該功能會使用更少的氣體還是使用它的原因是什麼?

如果你能做你的功能pure,你應該總是做pure。否則,如果您可以製作函式view,則應該始終製作它view

好處:

  • 如果你創建你的函式pureor view,你可以通過 web3.js 呼叫它,而不需要交易,沒有任何 gas 成本,也沒有確認延遲。
  • 目前,在 EVM 上執行時不會降低 gas 成本。但是,將來它可能會幫助 Solidity 編譯器優化您的程序。
  • 它將防止您在不希望的函式中意外讀取或寫入合約狀態。

缺點:

(沒有任何)

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