Solidity TypeError


mapping(uint => Info) private infos;
struct Info {
uint _id;
address _add;
}
function getInfo(uint _infoid) external view returns (uint, address) {
return infos[_infoid]; //to return id & add
}

我有另一个函数使用结构体创建映射,所以这里不是问题。

我所面临的错误是在getInfo()

from solidity:
TypeError: Different number of arguments in return statement than in returns declaration.
--> Contract.sol:97:9:
|
97 |         return infos[_infoid];

如果你写这个return infos[_infoid];,你只返回对象,而不是它的属性与相对值。要解决这个问题,您必须使用语句访问对象内部的属性(在本例中为_id, _add):

[StructObject].[Attribute];

你可以这样修改getInfo()方法的实现:

function getInfo(uint _infoid) external view returns (uint, address) {
return (infos[_infoid]._id, infos[_infoid]._add);
}

最新更新