Menu
Coddy logo textTech

Массивы хранения

Часть раздела Основы путешествия по 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 изменяют динамический массив в хранилище, добавляя или удаляя элементы с его конца.

challenge icon

Задание

Легко

Объявите динамический массив хранилища 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  {
        // Напишите ваше решение здесь.
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Песочница Solidity