我想知道为什么如果我的函数要返回一个不确定长度的字符串,为什么不能返回一个一定长度的字符串数组。
例如,这个函数不编译
function BindingTypeList() public pure returns(string[] memory) {
return ["DocumentTemplate", "Definition", "RepAndWarranty", "Restriction", "Entitlement"];
}错误消息是TypeError: Return argument type string memory[5] memory is not implicitly convertible to expected type (type of first return variable) string memory[] memory.
他们似乎在说string[5]与returns(string[])不兼容。我一点也不明白。
发布于 2021-09-20 02:45:40
如果其他人有这个问题,可以这样做的方法是:
function BindingTypeList() public pure returns(string[] memory) {
string[] memory names = new string[5];
names[0] = "DocumentTemplate";
names[1] = "Definition";
...
names[4] = "Entitlement";
return names;
}发布于 2021-09-03 04:09:36
您需要在契约中使用pragma experimental ABIEncoderV2;来启用返回字符串数组。
https://ethereum.stackexchange.com/questions/109266
复制相似问题