Solidity
僅讀取仍使用 gas/tx 費用的數據的功能
我有一個函式呼叫,它只從合約中讀取數據,但它仍然需要消耗氣體來執行:
function foo(int256 x) public returns (bool) { if(tuna[x].validOnce == true){ if(dog[x] == true) return true; else return false; } else return true; }
我已經閱讀了有關 pure 和 view 的內容,我可以將其添加到我的方法標題中。但是我不確定這是否是我需要使用此類標頭的情況?
是的。
function foo(int256 x) public view returns (bool) { if(tuna[x].validOnce == true){ if(dog[x] == true) return true; else return false; } else return true; }
這將返回值而不是事務雜湊。天然氣會計仍將展開,但天然氣將被退回,除非從另一個不執行只讀操作的合約呼叫它。
順便說一句,您使用
view
而不是pure
因為此函式讀取數據。也請看這裡:何時使用“View”和“Pure”代替“Constant”
希望能幫助到你。