今天要來複習 Mapping 這個 Key-Value Map 的使用方式。
通過簡單的記錄學生成績的範例,把如何儲存資料,將 Key 都給存下來,以及正確地刪除 Mapping 裡面的數值給複習一遍。
本日範例程式碼:
https://gist.github.com/hydai/1fc00629951108a31993a03b48f41158
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.1;
contract StudentScores {
mapping(string => uint) scores;
string[] names;
function addScore(string memory name, uint score) public {
scores[name] = score;
names.push(name);
}
function getScore(string memory name) public view returns (uint) {
return scores[name];
}
function clear() public {
while (names.length > 0) {
delete scores[names[names.length-1]];
names.pop();
}
}
}
本日影片連結:
https://youtu.be/hK9VLobzuUk
本系列播放清單:
https://www.youtube.com/playlist?list=PLHmOMPRfmOxQ3HSlId8KAKxnt8yuyTZVk