solidity使用mapping+struct复杂数据结构

solidity中使用mapping+struct的复杂数据结构时,遇到的问题”Mappings cannot be assigned to“。

更多区块链技术与应用分类:

区块链应用    区块链开发

以太坊 | Fabric | BCOS | 密码技术 | 共识算法 | 比特币其他链

通证经济传统金融场景 | 去中心化金融 | 防伪溯源 | 数据共享 | 可信存证

出错的代码

代码

constructor() public{
  dataBases[TypeConvertUtil.stringToBytes32(TABLE_BAG_NAME)] = bagRecordOf;
  dataBases[TypeConvertUtil.stringToBytes32(TABLE_LOCATIONS_NAME)] = locationRecordOf;
  dataBases[TypeConvertUtil.stringToBytes32(TABLE_ATTENDLOCATION_NAME)] = attendLocationRecordOf;
}

这样写会出现以下报错:

browser/TableDefTools.sol:112:9: TypeError: Mappings cannot be assigned to.
dataBases[TypeConvertUtil.stringToBytes32(TABLE_BAG_NAME)] = bagRecordOf;
^----------------------------------------------------------------------^

正确的代码

定义结构:

struct RecordBean {
	// 表名称
	string tableName;
	// 主键值
	string primaryKey;
	// 内容值
	string[] values;
}
mapping(bytes32 => mapping(bytes32 => RecordBean)) dataBases;

赋值:

dataBases[TypeConvertUtil.stringToBytes32(_tableName)][TypeConvertUtil.stringToBytes32(_primaryKey)] = recordBean;

取值:

RecordBean recordBean = dataBases[TypeConvertUtil.stringToBytes32(_tableName)][TypeConvertUtil.stringToBytes32(_primaryKey)];

原文链接:solidity使用mapping+struct复杂数据结构 

猜你喜欢

转载自blog.csdn.net/JonasErosonAtsea/article/details/109236550
今日推荐