首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实心映射的映射

实心映射的映射
EN

Stack Overflow用户
提问于 2018-09-22 06:47:42
回答 2查看 3.5K关注 0票数 3

所以我尝试创建数据结构,其中一个byte32映射到一个地址数组,每个地址映射到一个uint。

我正在考虑下面的方法,但它似乎不正确:

mapping (byte32 => mapping (address[] => uint))

如果可能的话,请帮我解决这个问题。如果问题描述不够清楚,请随时让我知道。

示例:有一个属性,它映射到所有者(address)数组(该属性的所有者),每个所有者映射到他们在该属性中拥有的股份(uint)。

EN

回答 2

Stack Overflow用户

发布于 2018-09-25 11:03:18

示例:有一个属性,它映射到所有者(地址)(属性的所有者)数组,每个所有者映射到他们在该属性中拥有的股份(Uint)。

实现这一点的方法如下所示:使用struct

代码语言:javascript
复制
struct Division {
    address owner;
    uint256 plots;
}

mapping(bytes32 => Division[]) Properties;    

function addDivision(bytes32 _property, address _owner, uint256 _plots) 
   public returns (bool success) {


    Division memory currentEntry;

    currentEntry.owner = _owner;
    currentEntry.plots = _plots;


    Properties[_property].push(currentEntry);

    return true;
}


function getPlot(bytes32 _property, address _owner) public view returns (uint) {


    for(uint i = 0; i < Properties[_property].length;  i++) {
        if(Properties[_property][i].owner == _owner)
          return Properties[_property][i].plots;
        }
    return 9999;
}
票数 2
EN

Stack Overflow用户

发布于 2018-09-22 07:55:00

是的,这是可能的,这是建议的方式。

要记住的是,您不能简单地迭代项目(就像您对数组一样),但是如果您的应用程序不需要这样做,那么您就可以了。

需要考虑的另一件事是创建一个具有it和属性的struct,但是,这取决于您的特定应用程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52451864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档