-
Notifications
You must be signed in to change notification settings - Fork 0
/
20221016_映射迭代.sol
39 lines (29 loc) · 975 Bytes
/
20221016_映射迭代.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract setMapping {
mapping(address => uint) public balance;
mapping(address => bool) public inserted;
address[] public keys;
//设置映射以及数组
function set(address _key, uint _val) public {
balance[_key] = _val;
//赋予balance数组一组值
if(!inserted[_key]) {
inserted[_key] = true;
keys.push(_key);
//使用If判断的意义在于,插入keys数组后,如果输入同样的address值,不会重复插入
}
}
function getLength() public view returns(uint) {
return keys.length;
}
function getFirst() public view returns(uint) {
return balance[keys[0]];
}
function getLast() public view returns(uint) {
return balance[keys[keys.length - 1]];
}
function get(uint _num) public view returns(uint) {
return balance[keys[_num]];
}
}