我正在使用solidity ^0.8.7。当我尝试创建一个包含映射的结构时,我修改了一个错误:“无法构造包含(嵌套)映射的结构。” 我认为这与 0.7.0 版中的文档更改有关。但我找不到解决方案。
编码:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
...
struct Transaction {
address to;
uint value;
bytes data;
bool executed;
mapping(address => bool) isConfirmed;
uint numConfirmations;
}
...
function submitTransaction (address _to, uint _value, bytes memory _data) public onlyOwner{
uint txIndex = transactions.length;
transactions.push(Transaction({to: _to, value: _value, data: _data, executed: false, numConfirmations: 0}));
emit SubmitTransaction(msg.sender, txIndex, _to, _value, _data);
}
...
使用旧版本的 Solidity 编译它没有问题。