Mojo Academy · Lektion

__copyinit__-metoden

Definér, hvordan Deres type kopierer sig selv.

Lektion 2 af 413 trin

__copyinit__-metoden er en gratis Mojo Academy-lektion på CoddyKit. Dette er lektion 2 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 kopieres

Når en værdi kopieres, kalder Mojo en særlig metode med navnet __copyinit__. Den opbygger en ny instans ud fra en eksisterende.

Den kører ved tildeling

Hver gang der sker en kopi, for eksempel ved almindelig tildeling, bliver __copyinit__ kaldt. Det er den mekanisme, der definerer, hvad kopiering af din type betyder.

Metodesignaturen

Den modtager den nye instans, der skal udfyldes, samt en skrivebeskyttet eksisterende værdi, der skal kopieres fra. Du angiver hvert felt på den nye instans.

fn __copyinit__(out self, existing: Self):
    self.x = existing.x

Initialiser hvert felt

Inde i __copyinit__ er din opgave at give den nye instans gyldige værdier for alle dens felter, som regel spejlet fra existing.

Dybe kontra overfladiske kopier

For data på heapen vælger du: kopiér pegeren, eller allokér og klon bufferen. En ægte dyb kopi giver fuld uafhængighed.

Hvorfor uafhængighed er vigtig

En korrekt __copyinit__ sikrer, at kopien ejer sine egne data. Derefter påvirker en ændring af kopien aldrig den oprindelige værdi.

Afledes ofte automatisk

Du skriver den sjældent i hånden. Når du markerer en type som Copyable, kan Mojo automatisk generere en __copyinit__ for hvert felt.

@fieldwise_init
struct Point(Copyable):
    var x: Int

Hvornår skal du skrive den selv

Skriv kun __copyinit__ manuelt, når standardadfærden er forkert, for eksempel når du administrerer en rå buffer, der skal klones.

Den definerer kopieringssemantikken

Denne metode er bogstaveligt talt det, der gør din type kopierbar. Uden den kan Mojo ikke duplikere din værdi ved tildeling.

Hold den korrekt og billig

En god __copyinit__ skal først og fremmest være korrekt og derefter effektiv. Kopiér kun det nødvendige, så duplikering forbliver overkommelig.

En byggesten i sikkerheden

Sammen med flytninger giver __copyinit__ Mojo sin forudsigelige værdiesemantik. Du styrer præcis, hvordan data duplikeres.

Hurtigt tjek

Lad os tjekke kopieringsinitialiseringen.

Opsummering

__copyinit__ definerer, hvordan din type kopierer sig selv og opbygger en uafhængig instans. Mojo afleder den ofte, men du kan tilpasse den. 🎯

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 “__copyinit__-metoden” gratis?

Ja — alle 3 lektioner i læringssporet Mojo Academy, inklusive “__copyinit__-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 “__copyinit__-metoden”?

Definér, hvordan Deres type kopierer sig selv. 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 2 af 4.

Hvor lang tid tager lektionen “__copyinit__-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