Arrays de almacenamiento
Parte de la sección Fundamentos del Journey de Solidity de Coddy. Lección 38 de 53.
Un array dinámico declarado en el ámbito del contrato vive en el almacenamiento. Usa push(value) para añadir un elemento y pop() para eliminar el último. Llamar a pop en un array vacío provoca una reversión. Su longitud cambia a medida que se añaden o eliminan valores.
Declara esto en el ámbito del contrato:
uint256[] values;Úsalo dentro de la función main proporcionada:
values.push(6);
values.push(15);
values.pop();
console.log(values.length);
console.log(values[0]);El array comienza vacío en esta prueba. Dos operaciones push crean dos elementos y pop elimina el segundo. El primero sigue siendo seis. Actualizar un array de almacenamiento cambia el estado del contrato, por lo que main no puede ser view.
push y pop cambian un array de almacenamiento dinámico al final.
Desafío
FácilDeclara una matriz de almacenamiento dinámica de uint256 llamada values. Inserta a, b y c, elimina el último elemento y después imprime la longitud y el último valor restante.
Las pruebas pasan argumentos a main en este orden: uint256 a, uint256 b, uint256 c. Cada prueba comienza con un estado de contrato nuevo.
Usa console.log para la salida solicitada. Imprime solo 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 a, uint256 b, uint256 c) 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 reutilizables8Arrays
Arrays de tamaño fijoArrays de memoria dinámicaArrays de almacenamientoRecorrido de ArraysResumen de ArraysPractica por tu cuenta: Playground de Solidity