ant*_*nis 7 ethereum solidity smartcontracts
我正在尝试使用 Solidity 0.4.4 创建智能合约。
我想知道是否有一种方法可以将已经输入的某些值的映射设置为空值?
例如:
这初始化了一个新的映射
mapping (uint => uint) map;
在这里我添加一些值
map[0] = 1;
map[1] = 2;
如何在不遍历所有键的情况下将地图设置回空?
我试过删除,但我的合同没有编译
我相信还有另一种方法可以解决这个问题。
如果您使用第二个键定义映射,则可以增加该键以从本质上重置您的映射。
例如,如果您希望每年重置映射,您可以这样定义:
uint256 private _year = 2021;
mapping(uint256 => mapping(address => uint256)) private _yearlyBalances;
Run Code Online (Sandbox Code Playgroud)
添加和检索值的工作方式与正常情况一样,但需要一个额外的键:
_yearlyBalances[_year][0x9101910191019101919] = 1;
_yearlyBalances[_year][0x8101810181018101818] = 2;
Run Code Online (Sandbox Code Playgroud)
当需要重置一切时,您只需调用
_year += 1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5046 次 |
最近记录: |