Solidität - Reine Funktionen
Reine Funktionen stellen sicher, dass sie den Status nicht lesen oder ändern. Eine Funktion kann als deklariert werdenpure. Die folgenden Anweisungen, die in der Funktion vorhanden sind, werden als Lesen des Status betrachtet, und der Compiler gibt in solchen Fällen eine Warnung aus.
Zustandsvariablen lesen.
Zugriff auf Adresse (this) .balance oder <Adresse> .balance.
Zugriff auf eine der speziellen Variablen block, tx, msg (msg.sig und msg.data können gelesen werden).
Aufruf einer Funktion, die nicht als rein markiert ist.
Verwenden einer Inline-Assembly, die bestimmte Opcodes enthält.
Reine Funktionen können die Funktionen revert () und require () verwenden, um potenzielle Statusänderungen zurückzusetzen, wenn ein Fehler auftritt.
Siehe das folgende Beispiel mit einer Ansichtsfunktion.
Beispiel
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;
}
}
Führen Sie das obige Programm mit den im Kapitel Solidity First Application beschriebenen Schritten aus .
Ausgabe
0: uint256: product 2
1: uint256: sum 3