Move.

帖子

分享您的知识。

Santorini.
Apr 06, 2025
专家问答

我怎样才能复制一个向量<u64>以供多次使用?

我正在尝试将向量复制到局部变量中,因为我的项目需要同一个向量的两个实例. 我已经看过一些方法,但我不完全确定如何正确实现它们. 谁能指导我使用Move编程语言实现这一目标的最佳实践或方法?

  • Move CLI
  • Move
0
4
分享
评论
.

答案

4
BlueEyedCrypto.
Apr 6 2025, 05:12

本质上,如果你正在寻找一种简单的方法,copy arr只要你的元素可以这样复制,使用就足够了.

0
评论
.
Bolke .
Apr 6 2025, 16:45

你可以尝试写一个这样的函数:

public fun copyVector(arr: vector<u64>, ctx: &mut TxContext) {
let i = 0;
let newVec = vector::empty<u64>();
while (i < vector::length(&arr)) {
let element = vector::borrow_mut(&mut arr, i);
let newElement = *element;
vector::push_back(&mut newVec, newElement);
i = i + 1;
}; 
0
评论
.
DuAn.
Apr 7 2025, 02:27

let new_arr: vector<u64> = copy arr;由于向量元素是 u64,你可以考虑. 但是,最好始终在开发网络上测试您的智能合约,以确保行为正确.

0
评论
.
elfDani.
Apr 7 2025, 03:25

该片段let new_arr: vector<u64> = arr;也可能有效. 但是请记住,你可以arr多次使用,因为每次使用都会产生一个副本.

0
评论
.

你知道答案吗?

请登录并分享。

我们使用 cookie 确保您在我们的网站上获得最佳体验。
更多信息