0

我有一个数据类型定义为

let digests: vector<vector<u8>>;

在这个digests向量中,如果我尝试使用push_back插入另一个向量,如下所示

let digest1: vector<u8>;
let digests: vector<vector<u8>>;

digest1 = h"00";
digests = Vector.empty<vector<u8>>();

Vector.push_back<vector<u8>>(
                &mut digests, 
                copy(digest1)
            );

测试失败push_back并出现以下错误。

[106] DiscardedTransaction(TransactionOutput { write_set: WriteSet(WriteSetMut { write_set: [] }), events: [], gas_used: 0, status: Discard(VMStatus { major_status: UNKNOWN_INVARIANT_VIOLATION_ERROR, sub_status: None, message: Some("vector elem type mismatch -- expected Vector(U8), got General([])") }) })

我对这个错误有点迷茫。另外,有没有更好的替代方法来实现嵌套向量?

我正在使用移动中间表示来编写上述内容

4

1 回答 1

0

这被确定为一个错误并在此处修复:https ://community.libra.org/t/push-back-on-a-vector-with-other-vectors/2706/3

于 2020-04-15T19:36:08.660 回答