Solidité - Fonctions pures

Les fonctions pures garantissent qu'elles ne lisent ni ne modifient l'état. Une fonction peut être déclarée commepure. Les instructions suivantes, si elles sont présentes dans la fonction, sont considérées comme lisant l'état et le compilateur lancera un avertissement dans de tels cas.

  • Lecture des variables d'état.

  • Adresse d'accès (this) .balance ou <address> .balance.

  • Accès à l'une des variables spéciales de block, tx, msg (msg.sig et msg.data peuvent être lus).

  • Appel de toute fonction non marquée pure.

  • Utilisation d'un assemblage en ligne contenant certains opcodes.

Les fonctions pures peuvent utiliser les fonctions revert () et require () pour annuler les changements d'état potentiels en cas d'erreur.

Voir l'exemple ci-dessous en utilisant une fonction d'affichage.

Exemple

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

Exécutez le programme ci-dessus en suivant les étapes fournies dans le chapitre Application Solidity First .

Production

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