Solidità - Funzioni pure

Le funzioni pure assicurano che non leggano o modificano lo stato. Una funzione può essere dichiarata comepure. Le seguenti istruzioni, se presenti nella funzione, sono considerate come la lettura dello stato e il compilatore lancerà un avviso in questi casi.

  • Lettura delle variabili di stato.

  • Accesso all'indirizzo (this) .balance o <address> .balance.

  • Accedere a una qualsiasi delle variabili speciali di block, tx, msg (msg.sig e msg.data possono essere letti).

  • Chiamare qualsiasi funzione non contrassegnata come pura.

  • Utilizzo dell'assieme in linea che contiene determinati codici operativi.

Le funzioni pure possono utilizzare le funzioni revert () e require () per annullare potenziali cambiamenti di stato se si verifica un errore.

Vedere l'esempio di seguito utilizzando una funzione di visualizzazione.

Esempio

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

Eseguire il programma di cui sopra utilizzando i passaggi forniti nel capitolo Solidity First Application .

Produzione

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