Die __moveinit__-Methode
Definieren Sie, wie Ihr Typ verschoben wird.
Die __moveinit__-Methode ist eine kostenlose Mojo Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Mojo Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Mojo Academy-Kurs umfasst insgesamt 4 Lektionen.
Festlegen, wie verschoben wird
Um einen Wert zu verschieben, ruft Mojo eine spezielle Methode namens __moveinit__ auf. Sie erstellt eine neue Instanz, indem sie eine alte übernimmt. 🚚
Wird bei einem Transfer ausgeführt
Wenn Sie den Transferoperator mit dem Zirkumflexzeichen verwenden, wird __moveinit__ ausgeführt. Die Methode verlagert den Wert, statt seine Daten zu duplizieren.
var b = a^ # calls __moveinit__Die Methodensignatur
Sie erhält die neue Instanz und den owned-Quellwert. Da die Quelle im Besitz der Methode ist, dürfen Sie sie direkt verbrauchen.
fn __moveinit__(out self, owned existing: Self):
self.ptr = existing.ptrÜbernehmen statt kopieren
Der entscheidende Punkt ist, Ressourcen wie einen Heap-Zeiger von der Quelle auf die neue Instanz zu übertragen, statt erneut Speicher zu reservieren.
Kein doppeltes Freigeben
Nach der Verschiebung darf die Quelle die übergebenen Daten nicht freigeben. Mojo kümmert sich darum, sodass der Puffer genau einer einzigen Instanz gehört.
Kostengünstig bei großen Werten
Da __moveinit__ die Eigentümerschaft verschiebt, statt Bytes zu klonen, kostet das Verschieben eines riesigen Puffers fast nichts. Das ist der Geschwindigkeitsvorteil.
Die Quelle wird ungültig
Sobald aus der Quelle verschoben wurde, ist sie verbraucht. Mojo verhindert, dass Sie sie lesen, und garantiert so, dass Sie niemals auf verlegte Daten zugreifen.
Wird häufig für Sie abgeleitet
Wie beim Kopieren schreiben Sie diese Methode normalerweise nicht selbst. Wenn Ihr Typ Movable entspricht, kann Mojo automatisch ein feldweises __moveinit__ erzeugen.
Wann Sie die Methode selbst schreiben sollten
Passen Sie __moveinit__ an, wenn Ihr Typ eine Ressource besitzt, die ausdrücklich übergeben werden muss, etwa einen manuell verwalteten Zeiger.
Passt zum Kopieren
Ein Typ kann sowohl Kopieren als auch Verschieben definieren. Mojo wählt dann die günstigere Variante und entscheidet sich für eine Verschiebung, wenn die Quelle nicht mehr benötigt wird.
Ermöglicht kostengünstige Eigentümerschaft
__moveinit__ macht die Übertragung der Eigentümerschaft schnell und sicher. Dadurch können Werte ohne unnötige Duplizierung durch Ihr Programm fließen.
Kurze Überprüfung
Überprüfen wir den Verschiebeinitialisierer.
Zusammenfassung
__moveinit__ legt fest, wie Ihr Typ verschoben wird: Ressourcen werden kostengünstig an eine neue Instanz übertragen, während die Quelle verbraucht wird. 🎯
Häufig gestellte Fragen
Ist die Lektion „Die __moveinit__-Methode“ kostenlos?
Ja — der vollständige Text von „Die __moveinit__-Methode“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Mojo Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Mojo Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Die __moveinit__-Methode“?
Definieren Sie, wie Ihr Typ verschoben wird. Du übst Mojo Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Mojo Academy zu starten?
Keine Vorkenntnisse erforderlich. Mojo Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Die __moveinit__-Methode“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Mojo Academy-Lektion Code schreiben und ausführen?
Ja. Jede Mojo Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Kopier- und Verschiebesemantik
- Die __copyinit__-Methode
- Die __moveinit__-Methode
- Destruktion und __del__