我想返回一个用户定义的struct
列表function sortByEtherValues (string category) public view returns (JobStruct[]) {
...
}
我收到以下错误:
无法解码输出:错误:不支持或无效的类型:元组
答案 0 :(得分:1)
Solidity支持returning multiple values:
struct JobStruct {
uint a;
uint b;
uint c;
}
function sortByEtherValues (string category) public view returns (uint, uint, uint) {
JobStruct memory js = JobStruct(1, 2, 3);
return (js.a, js.b, js.c);
}
通过分解struct
元素来返回结构数组会有点脏。如果可以,您应该尝试返回一个JobStruct
,方法是在单独的函数中按category
获取元素数,然后将索引添加到sortByEtherValues
。