Solidez - Funciones puras

Las funciones puras aseguran que no lean ni modifiquen el estado. Una función puede declararse comopure. Las siguientes declaraciones, si están presentes en la función, se consideran como lectura del estado y el compilador arrojará una advertencia en tales casos.

  • Lectura de variables de estado.

  • Accediendo a la dirección (this) .balance o <address> .balance.

  • Accediendo a cualquiera de las variables especiales de block, tx, msg (se pueden leer msg.sig y msg.data).

  • Llamar a cualquier función que no esté marcada como pura.

  • Usando ensamblaje en línea que contiene ciertos códigos de operación.

Las funciones puras pueden usar las funciones revert () y require () para revertir posibles cambios de estado si se produce un error.

Vea el siguiente ejemplo usando una función de visualización.

Ejemplo

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; 
   }
}

Ejecute el programa anterior siguiendo los pasos proporcionados en el capítulo Primera aplicación de Solidity.

Salida

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