我想做一个简单的智能合约,它有一个列表,可以设置项目,并且可以获取列表。
坚固的代码:
contract lister {
mapping(int => string) list;
int id = 0;
function getList() returns ( /*HERE*/ ) {
return list;
}
function setItemToList(string str) {
list[id] = str;
id++;
}
}
我想让 getList() 返回列表,但返回类型不兼容。我怎样才能做到这一点?
最佳答案
使用映射,不存储键并且不能迭代值,因此它们实际上只适用于单值查找。在您提供的示例中,使用数组可能是更好的选择。
另一方面,如果您使用数组并需要对其进行搜索(遍历所有项目),则需要小心,因为如果数组中的项目太多,最终可能会花费大量气体来调用函数。
关于blockchain - 如何在 Solidity 中返回映射列表? (以太坊合约),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37606839/