Solidity - 純函式



純函式確保它們不讀取或修改狀態。函式可以宣告為pure。如果函式中存在以下語句,則被視為讀取狀態,編譯器將在這種情況下發出警告。

  • 讀取狀態變數。

  • 訪問 address(this).balance 或 <address>.balance。

  • 訪問 block、tx、msg 的任何特殊變數(可以讀取 msg.sig 和 msg.data)。

  • 呼叫任何未標記為 pure 的函式。

  • 使用包含某些操作碼的內聯彙編。

如果發生錯誤,純函式可以使用 revert() 和 require() 函式來回滾潛在的狀態更改。

請參閱下面使用 view 函式的示例。

示例

pragma solidity ^0.5.0;

contract Test {
   function getResult() public pure returns(uint product, uint sum){
      uint a = 1; 
      uint b = 2;
      product = a * b;
      sum = a + b; 
   }
}

使用Solidity 第一個應用章節中提供的步驟執行上述程式。

輸出

0: uint256: product 2
1: uint256: sum 3
廣告

© . All rights reserved.