动态内存数组
本课属于 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 内存数组中的元素初始值为零。
挑战
简单分配一个长度为 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 {
// 在这里写下你的答案。
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Solidity 在线编辑器