Solidity Pure(纯)函数
 
 
 Pure(纯)函数不读取或修改状态。如果函数中存在以下语句,则被视为读取状态,编译器将抛出警告。
 
读取状态变量。 
访问 address(this).balance 或 <address>.balance 
访问任何区块、交易、msg等特殊变量(msg.sig 与 msg.data 允许读取)。 
调用任何不是纯函数的函数。 
使用包含特定操作码的内联程序集。 
 如果发生错误,纯函数可以使用
 revert()和
 require()函数来还原潜在的状态更改。
 
 声明纯函数,可以在函数声明里,添加
 pure关键字。
 
 示例
 
 
  
  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