Solidity-如何编写一个为结构设置地址的函数



我正在尝试创建一个函数,该函数可以为结构设置地址,这样我就可以输入该地址并将结构数据返回给我。即0x876…返回名称";John";,余额";99〃;

我在'getInfoByWallet[_wall]=teamWallets;'上收到错误消息上面写着

"从坚固性:mapping.sol22:34:TypeError:类型类型(struct-mapping.teamWallets存储指针(不能隐式转换为预期类型struct-Mapling.teamAwallets存储引用。getInfoByWallet[_wall]=团队钱包">

我很困惑,真的不知道该怎么办。任何帮助都将不胜感激。

pragma solidity ^0.5.11;
pragma experimental ABIEncoderV2;
contract Mapping {
struct teamWallets {
string name;
uint256 balance;
}
string name = "";
uint256 balance = 0;
teamWallets[] public _teamWallets;

mapping(address => teamWallets) public getInfoByWallet;
function addteamData(string memory _name, uint256 _balance) public {
_teamWallets.push(teamWallets(_name, _balance));
}
function setInfo(address _wall, teamWallets memory) public {
getInfoByWallet[_wall] = teamWallets;
}
}

如果你想在solidity中使用带有映射的struct,那么你必须遵循我在下面提到的方法。

这里是你的团队钱包结构。那么您已经在映射getInfoByWallet中使用了它。

现在,当你必须在像这样的映射中设置数据时

struct teamWallets {
string name;
uint256 balance;
}
mapping(address => teamWallets) public getInfoByWallet;

function setInfo(address _wall, string memory _name, uint256 _balance) public {
getInfoByWallet[_wall].name=_name;        
getInfoByWallet[_wall].balance=_balance;
}

因此,这是将数据存储在具有solidity映射的结构中的正确方法。我希望,现在你能澄清这个错误。

相关内容

  • 没有找到相关文章

最新更新