Menu
Coddy logo textTech

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.

challenge icon

Desafio

Fácil

Declare 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.
    }
}
quiz iconTeste seus conhecimentos

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

Pratique por conta própria: Playground de Solidity