有可能做一些类似于下面的事情吗?目前,编译时会抛出一个错误,说明“名称必须引用结构、枚举或合同”。我也有“工作?”不过,我不知道哪一种方法才是正确的。
mapping(address => uint256) shelf;
mapping (address => shelf) bookcase;这个想法是,一个地址会指向一个书架,书架上的书架会指向一个整数(书籍的数量)。
下面的工作到目前为止很好,为货架的价值设置。这个版本的问题是我不能把书柜公之于众,也想不出如何创建一个getter。
struct shelf
{
mapping(address => uint256) shelves;
}
mapping (address => shelves) bookcase;
bookcase[msg.sender] = shelf();
//shelf_address is argument from the function this code is in
bookcase[msg.sender].shelves[shelf_address] = 1;谢谢你的指点。
发布于 2018-03-03 03:00:36
这是如何在映射中使用嵌套映射和结构。
在现实生活中,您可以通过书架-地址--.books/-地址--.shelfId访问第二个映射数组。
pragma solidity ^0.4.10;
contract Mappings {
mapping(address => mapping(uint256 => Shelf)) bookcase;
struct Shelf {
bytes32[] books;
uint shelfId;
}
}https://ethereum.stackexchange.com/questions/41523
复制相似问题