我们说我有一个结构&像这样的映射:
struct myStruct {
address addr;
uint256 price;
bool approved;
}
mapping(string => myStruct) mappy;
如何检索所有密钥? 我知道可靠性会生成getter所以如果我有密钥,我可以从struct内部检索信息。但是密钥对我来说是未知的,我需要检索完整的结构。
也许更好的解决方案是拥有一个公共变量,它是结构的大小,索引是否有键并将键存储在结构中? 这样我就会知道尺寸,我想我可以迭代它
答案 0 :(得分:0)
首先,你不应该使用字符串作为键,更好地声明bytes32,因为字符串只是它的别名。
您可以调用映射,并将字符串键作为参考。
但是它只会检索没有内部键名的迭代数组。
让我们举例说,你有:
mappy['a']
包含以下信息
{
'0x000...000',
1,
true
}
调用将检索如下的简单数组:['0x000...000',1,true]
如果你想让它成为一个对象,你必须自己重建它。