Menu
CoddyTech

动态内存数组

本课属于 Coddy Solidity 学习旅程的“基础知识”单元。第 37 课,共 53 课。

使用 new uint256[](length) 可以在内存中分配一个长度在运行时确定的数组。数组元素的初始值为零。虽然类型使用了空方括号,但分配的内存数组无法通过 push 或 pop 调整大小。

这段代码中的语句在提供的 main 函数中运行。

uint256[] memory values = new uint256[](3);
values[1] = 19;
console.log(values.length);
console.log(values[0]);

数组有三个位置,只有中间的位置被赋了值。第一个元素仍为零。length 属性报告的是元素的数量,而不是最后一个元素的值。

新分配的 uint256 内存数组中的元素初始值为零。

challenge icon

挑战

简单

分配一个长度为 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 {
        // 在这里写下你的答案。
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Solidity 在线编辑器