Menu
Coddy logo textTech

Lectura y escritura del estado

Parte de la sección Fundamentos del Journey de Solidity de Coddy. Lección 27 de 53.

Una función view puede leer el estado del contrato, pero no puede cambiarlo. Una función que escribe en el estado no puede marcarse como view ni pure. Separa un getter que lee un valor de un setter que lo cambia para que el propósito de cada función quede claro.

Declara esto en el ámbito del contrato:

uint256 stored;
function setValue(uint256 n) internal {
    stored = n;
}
function readValue() internal view returns (uint256) {
    return stored;
}

Úsalo dentro de la función main proporcionada:

setValue(18);
console.log(readValue());

setValue escribe en la variable almacenada compartida. readValue es view porque devuelve esa variable sin cambiarla. main también escribe indirectamente al llamar a setValue, por lo que su encabezado no tiene el modificador view ni pure.

Una función que escribe en el estado del contrato no puede marcarse como view.

challenge icon

Desafío

Fácil

Declara el estado level, un setter setLevel y un getter de lectura getLevel. main debe establecer level en el nextLevel proporcionado y después imprimir el resultado del getter.

Las pruebas pasan argumentos a main en este orden: uint256 nextLevel. Cada prueba comienza con un estado de contrato nuevo.

Usa console.log para la salida solicitada. Imprime únicamente los valores solicitados, uno por línea, sin etiquetas adicionales a menos que la tarea las especifique.

Pruébalo tú mismo

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 nextLevel) external  {
        // Escribe tu solución aquí.
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de Solidity