【发布时间】:2021-01-19 19:31:49
【问题描述】:
这是我的代码,我正在尝试创建一个包含两个映射的结构并将这些结构插入到一个映射中:
pragma solidity ^0.7.2;
contract Campaign {
struct Usuario {
string id;
mapping(string => uint) debe;
mapping(string => uint) leDebe;
}
Usuario[] public usuarios;
uint numUsuarios;
mapping(string => Usuario) public circulo;
constructor () {
}
function usuarioPrueba(string memory id, string memory idDebe, uint valDebe, string memory idLeDebe, uint valLedebe) public {
usuarios.push();
Usuario storage newUsuario = usuarios[numUsuarios];
numUsuarios++;
newUsuario.id = id;
newUsuario.debe[idDebe] = valDebe;
newUsuario.leDebe[idLeDebe] = valLedebe;
circulo[id] = newUsuario;
}
}
但我在 Remix 的第 28 行 (circulo[id] = newUsuario;) 收到以下错误:
TypeError:存储中包含(嵌套)映射的类型不能 分配给。 circulo[id] = newUsuario;
非常感谢您事先提供的帮助,我为我的英语感到抱歉,我来自西班牙,如果解决方案很明显,我对 Solidity 和智能合约有点陌生。
【问题讨论】:
标签: struct mapping solidity smartcontracts remix