Solidity
使用純函式和視圖函式修飾符有什麼好處嗎?
我有一個不讀取或修改合約狀態的函式:
contract C { function add(uint a, uint b) public returns (uint) { uint res = a + b; return res; } }
使用 pure/view 修飾符有意義嗎?我的意思是,之後該功能會使用更少的氣體還是使用它的原因是什麼?
如果你能做你的功能
pure
,你應該總是做pure
。否則,如果您可以製作函式view
,則應該始終製作它view
。好處:
- 如果你創建你的函式
pure
orview
,你可以通過 web3.js 呼叫它,而不需要交易,沒有任何 gas 成本,也沒有確認延遲。- 目前,在 EVM 上執行時不會降低 gas 成本。但是,將來它可能會幫助 Solidity 編譯器優化您的程序。
- 它將防止您在不希望的函式中意外讀取或寫入合約狀態。
缺點:
(沒有任何)