gpt4 book ai didi

struct - Solidity:在映射中创建包含映射的结构时出现问题

转载 作者:行者123 更新时间:2023-12-05 00:45:19 26 4
gpt4 key购买 nike

这是我的代码,我正在尝试创建一个包含两个映射的结构并将这些结构插入到一个映射中:

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: Types in storage containing (nested) mappings cannot beassigned to. circulo[id] = newUsuario;

非常感谢您事先提供的帮助,我为我的英语感到抱歉,我来自西类牙,如果解决方案很明显,我对 Solidity 和智能合约有点陌生。

最佳答案

从 v 0.7.0 开始,您不能分配包含嵌套映射的结构。您可以做的是创建像这样的新实例,然后将值分配给结构的属性!

 Usuario storage newUsuario = circulo[id];
numUsuarios++;
newUsuario.id = id;
newUsuario.debe[idDebe] = valDebe;
newUsuario.leDebe[idLeDebe] = valLedebe;

关于struct - Solidity:在映射中创建包含映射的结构时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64200059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com