我想在smart合同的声明行中初始化我的映射。我在想什么是最好的做法?我试过以下几种方法,但Remix给了我错误:
mapping(address _addr) public view myMap = [ addr-1 : true, addr-2 : false, addr-3 : true ];
发布于 2021-10-16 10:52:38
您需要首先声明变量,然后在单独的行上为其赋值。
pragma solidity ^0.8;
contract MyContract {
mapping(address => bool) public myMap;
constructor() {
myMap[address(0x123)] = true;
myMap[address(0x456)] = false;
myMap[address(0x789)] = true;
}
}发布于 2022-02-28 12:30:58
不幸的是,您不能。有关原因的详细信息,请参阅坚实的文档。您唯一的选择是迭代这些键。
如果您不提前知道您的一组键,则必须将这些键保存在合同中的一个单独的数组中。
https://stackoverflow.com/questions/69593720
复制相似问题