Bài viết
Chia sẻ kiến thức của bạn.
Làm thế nào tôi có thể sao chép một vector <u64>để sử dụng nhiều lần?
Tôi đang cố gắng sao chép một vectơ
- Move CLI
- Move
Câu trả lời
4Về cơ bản, nếu bạn đang tìm kiếm một cách đơn giản, việc sử dụng copy arr
sẽ đủ miễn là các phần tử của bạn có thể được sao chép như vậy.
Bạn có thể thử viết một hàm như thế này:
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;
};
let new_arr: vector<u64> = copy arr;
Vì các phần tử vector là u64, bạn có thể xem xét. Tuy nhiên, tốt nhất bạn nên kiểm tra các hợp đồng thông minh của bạn trên mạng phát triển để đảm bảo hành vi chính xác.
Snippet let new_arr: vector<u64> = arr;
cũng có thể hoạt động. Nhưng hãy nhớ rằng, bạn có thể sử dụng arr
nhiều lần vì mỗi lần sử dụng sẽ dẫn đến một bản sao.
Bạn có biết câu trả lời không?
Hãy đăng nhập và chia sẻ nó.