Mojo Academy · Lektion

__moveinit__-metoden

Definér, hvordan Deres type flyttes.

Lektion 3 af 413 trin

__moveinit__-metoden er en gratis Mojo Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Mojo Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Mojo Academy-kurset indeholder 4 lektioner i alt.

Definition af, hvordan der flyttes

For at flytte en værdi kalder Mojo en særlig metode med navnet __moveinit__. Den opbygger en ny instans ved at overtage en gammel. 🚚

Den kører ved overførsel

Når du bruger cirkumfleks-operatoren til overførsel, bliver __moveinit__ kaldt. Den flytter værdien i stedet for at duplikere dens data.

var b = a^   # calls __moveinit__

Metodesignaturen

Den modtager den nye instans og kildeværdien, som er owned. Fordi kilden er owned, må du forbruge den direkte.

fn __moveinit__(out self, owned existing: Self):
    self.ptr = existing.ptr

Stjæl, kopiér ikke

Tricket er at overføre ressourcer, for eksempel en heap-peger, fra kilden til den nye instans i stedet for at allokere igen.

Ingen dobbelt frigivelse

Efter flytningen må kilden ikke frigive de data, den har givet væk. Mojo håndterer dette, så bufferen ejes af præcis én instans.

Billigt for store værdier

Fordi __moveinit__ flytter ejerskab i stedet for at klone bytes, koster det næsten ingenting at flytte en enorm buffer. Det er hastighedsgevinsten.

Kilden bliver ugyldig

Når der er flyttet fra kilden, er den forbrugt. Mojo forhindrer dig i at læse den og garanterer dermed, at du aldrig rører data, der er blevet flyttet.

Afledes ofte automatisk

Ligesom ved kopiering skriver du normalt ikke denne selv. Når typen opfylder Movable, kan Mojo automatisk generere en __moveinit__ for hvert felt.

Hvornår skal du skrive den selv

Tilpas __moveinit__, når din type ejer en ressource, der kræver en udtrykkelig overdragelse, for eksempel en manuelt administreret peger.

Passer sammen med kopi

En type kan definere både kopi og flytning. Mojo vælger derefter den billigste løsning og vælger en flytning, når der ikke længere er brug for kilden.

Muliggør billigt ejerskab

__moveinit__ gør overførsel af ejerskab hurtig og sikker. Den lader værdier flyde gennem dit program uden unødvendig duplikering.

Hurtigt tjek

Lad os tjekke flytningsinitialiseringen.

Opsummering

__moveinit__ definerer, hvordan din type flytter sig ved billigt at overdrage ressourcer til en ny instans og forbruge kildeinstansen. 🎯

Gratis at komme i gang

Lær Mojo med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “__moveinit__-metoden” gratis?

Ja — alle 3 lektioner i læringssporet Mojo Academy, inklusive “__moveinit__-metoden”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Mojo Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “__moveinit__-metoden”?

Definér, hvordan Deres type flyttes. Du øver dig i Mojo Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Mojo Academy?

Der kræves ingen tidligere erfaring. Mojo Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “__moveinit__-metoden”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Mojo Academy-lektion?

Ja. Alle Mojo Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Kopierings- kontra flyttesemantik
  2. __copyinit__-metoden
  3. __moveinit__-metoden
  4. Destruktion og __del__
← Tilbage til Mojo Academy