Пост
Поделитесь своими знаниями.
Как скопировать вектор <u64>для многократного использования?
Я пытаюсь скопировать вектор
- Move CLI
- Move
Ответы
4По сути, если вы ищете простой способ, copy arr
достаточно использовать его, если ваши элементы можно копировать таким образом.
Вы можете попробовать написать такую функцию:
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;
Поскольку векторные элементы равны u64, вы можете подумать. Однако всегда лучше тестировать смарт-контракты в сети разработчиков, чтобы убедиться в правильном поведении.
Фрагмент let new_arr: vector<u64> = arr;
также может сработать. Но помните, что вы можете использовать его arr
несколько раз, так как при каждом использовании вы получите копию.
Знаете ответ?
Пожалуйста, войдите в систему и поделитесь им.