Solidity

為什麼這兩個函式的gas成本不同?

  • October 9, 2022

功能1:

   function testFunc1(uint256 num) public pure returns(uint256){
       return unm;
   }

功能2:

function testFunc1(uint256 num) public returns(uint256){
           return unm;
       }

唯一的區別是寫與否,gas的計算依據是什麼?

純函式或視圖函式不會花費任何氣體,因為它不會改變區塊鏈的狀態並且只能由提供者執行。

每個礦工都會執行公共功能,即使它沒有向區塊鏈寫入任何內容。因此,公共功能至少會消耗基礎燃料。

如果您可以製作函式pure,則應該這樣做,因為如果唯一的區別是修飾符,pure則函式比非純函式花費更少的氣體。函式通常適用於不讀取狀態變數的函式,並且通常是在它們內部進行某種類型計算而不依賴外部數據的函式purepure這就是為什麼他們花費更少的汽油。

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