Массивы хранения
Часть раздела Основы путешествия по Solidity на Coddy. Урок 38 из 53.
Динамический массив, объявленный на уровне контракта, хранится в storage. Используйте push(value), чтобы добавить элемент, и pop(), чтобы удалить последний. Вызов pop для пустого массива приводит к отмене выполнения. Его длина изменяется по мере добавления или удаления значений.
Объявите это на уровне контракта:
uint256[] values;Используйте это внутри предоставленной функции main:
values.push(6);
values.push(15);
values.pop();
console.log(values.length);
console.log(values[0]);В этом тесте массив изначально пуст. Две операции push создают два элемента, а pop удаляет второй. Первый остаётся равным шести. Изменение массива в хранилище изменяет состояние контракта, поэтому main не может быть view.
push и pop изменяют динамический массив в хранилище, добавляя или удаляя элементы с его конца.
Задание
ЛегкоОбъявите динамический массив хранилища uint256 с именем values. Добавьте a, b и c, удалите последний элемент, затем выведите длину и оставшееся последнее значение.
Тесты передают аргументы в main в следующем порядке: uint256 a, uint256 b, uint256 c. Каждый тест начинается с нового состояния контракта.
Используйте console.log для требуемого вывода. Выводите только требуемые значения, по одному в строке, без дополнительных меток, если только задание явно их не требует.
Попробуйте сами
// 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 {
// Напишите ваше решение здесь.
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
2Переменные и типы
Беззнаковые целые числаВвод и выводЗнаковые целые числаЛогические значенияСтроки в памятиКарточка профиля5Функции
Параметры функцийВозврат значенийЧистые функцииВызовы вспомогательных функцийПовторно используемые вычисления8Массивы
Массивы фиксированного размераМассивы в динамической памятиМассивы храненияЦиклы по массивамИтоги по массивамПотренируйтесь самостоятельно: Песочница Solidity