Допис

Діліться своїми знаннями.

Допис

Діліться своїми знаннями.

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
Коментарі
.

Ви знаєте відповідь?

Будь ласка, увійдіть та поділіться нею.

Move is an executable bytecode language used to implement custom transactions and smart contracts.

148Пости231Відповіді
Sui.X.Peera.

Зароби свою частку з 1000 Sui

Заробляй бали репутації та отримуй винагороди за допомогу в розвитку спільноти Sui.

Ми використовуємо файли cookie, щоб гарантувати вам найкращий досвід на нашому сайті.
Детальніше