Массивы в динамической памяти
Часть раздела Основы путешествия по Solidity на Coddy. Урок 37 из 53.
Используйте new uint256[](length), чтобы выделить в памяти массив с длиной, выбранной во время выполнения. Его элементы начинают со значения zero. Хотя в типе используются пустые скобки, размер выделенного массива в памяти нельзя изменить с помощью push или pop.
Инструкции в этом фрагменте выполняются внутри предоставленной функции main.
uint256[] memory values = new uint256[](3);
values[1] = 19;
console.log(values.length);
console.log(values[0]);В массиве три ячейки, и значение было присвоено только средней ячейке. Его первый элемент остаётся равным нулю. Свойство length показывает, сколько элементов существует, а не значение последнего элемента.
Недавно выделенный в памяти массив uint256 начинается с элементов, имеющих нулевые значения.
Задание
ЛегкоВыделите массив в памяти длиной n, установите его последний элемент равным marker, затем выведите его длину и последний элемент. n находится в диапазоне от 1 до 8.
Тесты передают аргументы в main в следующем порядке: uint256 n, uint256 marker. Каждый тест начинается с нового состояния контракта.
Используйте console.log для требуемого вывода. Выведите только требуемые значения, по одному в строке, без дополнительных меток, если только задание явно их не требует.
Попробуйте сами
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 n, uint256 marker) external view {
// Напишите ваше решение здесь.
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
2Переменные и типы
Беззнаковые целые числаВвод и выводЗнаковые целые числаЛогические значенияСтроки в памятиКарточка профиля5Функции
Параметры функцийВозврат значенийЧистые функцииВызовы вспомогательных функцийПовторно используемые вычисления8Массивы
Массивы фиксированного размераМассивы в динамической памятиМассивы храненияЦиклы по массивамИтоги по массивамПотренируйтесь самостоятельно: Песочница Solidity