Leitura e Escrita do Estado
Parte da seção Fundamentos do Journey de Solidity da Coddy. Lição 27 de 53.
Uma função view pode ler o estado do contrato, mas não pode alterá-lo. Uma função que grava no estado não pode ser marcada como view ou pure. Separe uma função getter que lê um valor de uma função setter que o altera, para deixar clara a finalidade de cada função.
Declare isto no escopo do contrato:
uint256 stored;
function setValue(uint256 n) internal {
stored = n;
}
function readValue() internal view returns (uint256) {
return stored;
}Use isso dentro da função main fornecida:
setValue(18);
console.log(readValue());setValue grava a variável armazenada compartilhada. readValue é view porque retorna essa variável sem alterá-la. main também grava indiretamente ao chamar setValue, portanto seu cabeçalho não tem o modificador view nem pure.
Uma função que grava o estado do contrato não pode ser marcada como view.
Desafio
FácilDeclare o estado level, um setter setLevel e um getter de visualização getLevel. main deve definir level como o nextLevel fornecido e, em seguida, imprimir o resultado do getter.
Os testes passam argumentos para main nesta ordem: uint256 nextLevel. Cada teste começa com um estado novo do contrato.
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 nextLevel) external {
// 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áveis6Estado do Contrato
Variáveis de EstadoLeitura e Escrita do EstadoGetters Públicos de EstadoConstantesContador CompartilhadoPratique por conta própria: Playground de Solidity