Beitrag

Teile dein Wissen.

Beitrag

Teile dein Wissen.

Santorini.
Apr 06, 2025
Experten Q&A

Wie kann ich einen Vektor kopieren<u64>, um ihn mehrfach zu verwenden?

Ich versuche, einen Vektor in eine lokale Variable zu kopieren, weil ich für mein Projekt zwei Instanzen desselben Vektors benötige. Ich habe einige Methoden gesehen, bin mir aber nicht ganz sicher, wie ich sie richtig implementieren soll. Kann mir jemand die besten Praktiken oder Methoden zeigen, um dies in der Programmiersprache Move zu erreichen?

  • Move CLI
  • Move
0
4
Teilen
Kommentare
.

Antworten

4
BlueEyedCrypto.
Apr 6 2025, 05:12

Wenn Sie nach einem einfachen Weg suchen, copy arrsollte die Verwendung im Wesentlichen ausreichen, solange Ihre Elemente auf diese Weise kopiert werden können.

0
Kommentare
.
Bolke .
Apr 6 2025, 16:45

Sie können versuchen, eine Funktion wie diese zu schreiben:

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
Kommentare
.
DuAn.
Apr 7 2025, 02:27

let new_arr: vector<u64> = copy arr;Da die Vektorelemente u64 sind, könnten Sie das in Betracht ziehen. Es ist jedoch immer am besten, Ihre Smart Contracts in einem Entwicklungsnetzwerk zu testen, um das richtige Verhalten sicherzustellen.

0
Kommentare
.
elfDani.
Apr 7 2025, 03:25

Das Snippet let new_arr: vector<u64> = arr;könnte auch funktionieren. Denken Sie jedoch daran, dass Sie es arrmehrmals verwenden können, da jede Verwendung zu einer Kopie führt.

0
Kommentare
.

Weißt du die Antwort?

Bitte melde dich an und teile sie.

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

148Beiträge231Antworten
Sui.X.Peera.

Verdiene deinen Anteil an 1000 Sui

Sammle Reputationspunkte und erhalte Belohnungen für deine Hilfe beim Wachstum der Sui-Community.

Wir verwenden Cookies, um sicherzustellen, dass Sie die beste Erfahrung auf unserer Website haben.
Mehr Infos