Array di archiviazione
Fa parte della sezione Fondamenti del percorso Solidity di Coddy. Lezione 38 di 53.
Un array dinamico dichiarato a livello di contratto risiede in storage. Usa push(value) per aggiungere un elemento e pop() per rimuovere l’ultimo. Chiamare pop su un array vuoto causa un revert. La sua lunghezza cambia quando vengono aggiunti o rimossi valori.
Dichiara questo a livello di contratto:
uint256[] values;Usalo all’interno della funzione main fornita:
values.push(6);
values.push(15);
values.pop();
console.log(values.length);
console.log(values[0]);L’array inizia vuoto in questo test. Due operazioni push creano due elementi e pop rimuove il secondo. Il primo rimane sei. L’aggiornamento di un array in storage modifica lo stato del contratto, quindi main non può essere view.
push e pop modificano un array dinamico in storage alla sua estremità.
Sfida
FacileDichiara un array di archiviazione dinamico di tipo uint256 chiamato values. Aggiungi a, b e c, rimuovi l’ultimo elemento, poi stampa la lunghezza e il valore rimanente dell’ultimo elemento.
I test passano gli argomenti a main in quest’ordine: uint256 a, uint256 b, uint256 c. Ogni test inizia con uno stato del contratto nuovo.
Usa console.log per l’output richiesto. Stampa solo i valori richiesti, uno per riga, senza etichette aggiuntive, a meno che il compito non le specifichi.
Provalo tu
// 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 {
// Scrivi qui la tua soluzione.
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
2Variabili e tipi
Interi senza segnoInput e outputInteri con segnoValori booleaniStringhe in memoriaScheda profilo5Funzioni
Parametri delle funzioniValori di ritornoFunzioni pureChiamate di supportoCalcoli riutilizzabili8Array
Array a dimensione fissaArray con memoria dinamicaArray di archiviazioneIterare sugli arrayRiepilogo degli arrayEsercitati da solo: Playground Solidity