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.
Desafío
FácilDeclara 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í.
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
10Reglas de los contratos
Condiciones requireReversiones explícitasEventosVisibilidad y privacidadActualizaciones verificadas2Variables y tipos
Enteros sin signoEntradas y salidasEnteros con signoValores booleanosCadenas en memoriaTarjeta de perfil5Funciones
Parámetros de funcionesValores de retornoFunciones purasLlamadas auxiliaresCálculos reutilizables6Estado del contrato
Variables de estadoLectura y escritura del estadoGetters públicos del estadoConstantesContador compartidoPractica por tu cuenta: Playground de Solidity