__moveinit__-metoden
Definér, hvordan Deres type flyttes.
__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.ptrStjæ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. 🎯
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
- Kopierings- kontra flyttesemantik
- __copyinit__-metoden
- __moveinit__-metoden
- Destruktion og __del__