映射
本课属于 Coddy Solidity 学习旅程的“基础知识”单元。第 42 课,共 53 课。
映射会在存储中将键与值关联起来。在合约作用域中声明 mapping(keyType => valueType),并使用方括号读取或写入键。未写入的键会返回值类型的默认值,例如 uint256 的默认值为零。
在合约作用域中声明:
mapping(uint256 => uint256) points;在提供的 main 函数中使用它:
points[4] = 18;
console.log(points[4]);
console.log(points[5]);赋值只会改变键 four。键 five 从未被赋值,读取时为零。映射不提供长度或内置的键列表;如果应用需要遍历键,请单独跟踪这些键。
未写入的映射键读取时会得到其值类型的默认值。
挑战
简单声明一个从 uint256 键映射到 uint256 值、名为 scores 的映射。将 points 赋给键 player,然后打印 scores[player] 和 scores[player + 1]。
测试会按以下顺序向 main 传入参数:uint256 player、uint256 points。每项测试都会从全新的合约状态开始。
使用 console.log 输出要求的内容。只打印要求的值,每行一个,不要添加额外标签,除非任务有说明。
亲手试试
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 player, uint256 points) external {
// 在这里写下你的答案。
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Solidity 在线编辑器