solidity的数据结构
1.Mapping的删除
情景:在完成合约的一些交易后要将本次使用过的一些mapping数据删除(或重置),以供下次或其他人使用合约的状态变量
注意:
mapping的delete:只是删除对应某个key的value,而不能直接删除整个mapping,所以要想删除该mapping的每一个key时,往往要把每一个key放进一个动态数组,然后遍历该数组进行删除。
问题:如果要删除一个mapping里的另一个mapping,是直接删除外层mapping,还是要把里层mapping的每个Key都删除?
测试:
// SPDX-License-Identifier: SimPL-2.0
pragma solidity ^0.4.18;
struct result {
int[] results;
mapping(int => uint) resultcount;
}
mapping(address => result) CSToResult;
//设置值
function setresults(int _result, uint _count)public {
CSToResult[msg.sender].results.push(_result);
CSToResult[msg.sender].resultcount[_result