Solidity
為什麼這兩個函式的gas成本不同?
功能1:
function testFunc1(uint256 num) public pure returns(uint256){ return unm; }
功能2:
function testFunc1(uint256 num) public returns(uint256){ return unm; }
唯一的區別是寫純與否,gas的計算依據是什麼?
純函式或視圖函式不會花費任何氣體,因為它不會改變區塊鏈的狀態並且只能由提供者執行。
每個礦工都會執行公共功能,即使它沒有向區塊鏈寫入任何內容。因此,公共功能至少會消耗基礎燃料。
如果您可以製作函式
pure
,則應該這樣做,因為如果唯一的區別是修飾符,pure
則函式比非純函式花費更少的氣體。函式通常適用於不讀取狀態變數的函式,並且通常是在它們內部進行某種類型計算而不依賴外部數據的函式pure
。pure
這就是為什麼他們花費更少的汽油。