我有一个名为 Purchase 的结构体,其中包含一个支付数组。然而,当我尝试在我的 makePayment 方法中添加新的支付数组时,从 solidity 编译器返回了一个错误:“复制类型结构体 Payment memory[] memory 到存储器还不支持。” 当我将支付数组更改为 storage 或 memory 时,我得到相同的错误。我在下面添加了相关代码。
在 Solidity 中,我能否实现我想要的功能?文档中没有明确说明不能做到这一点,但我也没有看到任何示例来实现我所尝试的操作。:|
struct Payment {
address maker;
uint amount;
}
struct Purchase {
uint product_id;
bool complete;
Payment[] payments;
}
Purchase[] purchases;
function makePayment(uint product_id, uint amt, uint purchase_id) returns (bool) {
Payment[] payments;
payments[0] = Payment(address, amt);
purchases[purchase_id] = Purchase(product_id, false, payments);
}