Funções Puras
Parte da seção Fundamentos do Journey de Solidity da Coddy. Lição 23 de 53.
Uma função pura calcula a partir de seus parâmetros e valores locais sem ler ou gravar o estado do contrato. Isso facilita o raciocínio sobre um cálculo. Marcar uma função como pura é uma promessa verificada pelo compilador, não uma solicitação para apagar dados.
Defina este auxiliar dentro do contrato:
function perimeter(uint256 w, uint256 h) internal pure returns (uint256) {
return 2 * (w + h);
}Use-o dentro da função main fornecida:
console.log(perimeter(8, 3));O auxiliar precisa apenas da largura e da altura. Ele retorna o dobro da soma delas, portanto pode ser puro. O wrapper principal continua sendo view porque usa o console de depuração; o próprio auxiliar não contém registro em log nem acesso ao estado.
Uma função pura não lê nem grava o estado do contrato.
Desafio
FácilCrie um auxiliar interno puro chamado triple que retorne três vezes sua entrada uint256. Imprima triple(value) a partir de main.
Os testes passam os argumentos para main nesta ordem: uint256 value. Cada teste começa com o estado do contrato novo.
Use console.log para a saída solicitada. Imprima apenas os valores solicitados, um por linha, sem rótulos adicionais, a menos que a tarefa os especifique.
Experimente você mesmo
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 value) external view {
// Escreva sua solução aqui.
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
2Variáveis e Tipos
Inteiros sem sinalEntradas e saídasInteiros com sinalValores booleanosStrings na memóriaCartão de perfil5Funções
Parâmetros de FunçãoRetorno de ValoresFunções PurasChamadas AuxiliaresCálculos ReutilizáveisPratique por conta própria: Playground de Solidity