Solidez - Funções puras
Funções puras garantem que não leiam ou modifiquem o estado. Uma função pode ser declarada comopure. As instruções a seguir, se presentes na função, são consideradas como leitura do estado e o compilador lançará um aviso nesses casos.
Lendo variáveis de estado.
Endereço de acesso (this) .balance ou <address> .balance.
Acessando qualquer variável especial do bloco, tx, msg (msg.sig e msg.data podem ser lidos).
Chamar qualquer função não marcada como pura.
Usando assembly embutido que contém certos opcodes.
Funções puras podem usar as funções revert () e require () para reverter possíveis alterações de estado se ocorrer um erro.
Veja o exemplo abaixo usando uma função de visualização.
Exemplo
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;
}
}
Execute o programa acima usando as etapas fornecidas no capítulo Aplicativo Solidity First .
Resultado
0: uint256: product 2
1: uint256: sum 3