Solidity - Чистые функции
Чистые функции гарантируют, что они не читают и не изменяют состояние. Функцию можно объявить какpure. Следующие операторы, если они присутствуют в функции, считаются считывающими состояние, и в таких случаях компилятор выдаст предупреждение.
Чтение переменных состояния.
Адрес доступа (этот) .balance или <адрес> .balance.
Доступ к любой специальной переменной блока, tx, msg (можно прочитать msg.sig и msg.data).
Вызов любой функции, не помеченной как чистая.
Использование встроенной сборки, содержащей определенные коды операций.
Чистые функции могут использовать функции revert () и require () для отмены возможных изменений состояния в случае возникновения ошибки.
См. Пример ниже с использованием функции просмотра.
пример
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;
}
}
Запустите указанную выше программу, следуя инструкциям в главе « Первое приложение Solidity» .
Вывод
0: uint256: product 2
1: uint256: sum 3