代码拉取完成,页面将自动刷新
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
/**
* IterableMapping 可迭代映射
*/
contract IterableMapping {
// 地址/余额
mapping(address => uint) public balances;
// 地址/是否存在
mapping(address => bool) public isInserted;
// 所有存在地址
address[] public keys;
/** 添加地址 */
function set(address _key, uint _val) external {
// 给地址赋值余额
balances[_key] = _val;
// 判断地址是否在映射中
if (!isInserted[_key]) {
// 添加映射
isInserted[_key] = true;
// 添加存在地址
keys.push(_key);
}
}
/** 获取地址数组长度 */
function getSize() external view returns (uint) {
return keys.length;
}
/** 获取第一个地址余额 */
function getFirstAddressBal() external view returns (uint) {
return balances[keys[0]];
}
/** 获取最后一个地址的余额 */
function getLastAddressBal() external view returns (uint) {
return balances[keys[keys.length - 1]];
}
/** 获取任意位置地址的余额 */
function getAddressBalAtIndex(uint _index) external view returns (uint)
{
return balances[keys[_index]];
}
/** 遍历所有地址余额,getSize + getAddressBalAtIndex 结合使用 */
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。