<Eigentum in Rust
Eine verwirrende G’schicht
Eine der ersten Sachen die man lernt wenn man anfaengt in Rust zu programmieren ist die Ownership rule. Jeder Wert kann zu jeder Zeit maximal einen Besitzer haben. Fuer viele die von anderen Sprachen kommen wird das Anfangs sehr verwirrend sein, da das Hantieren mit Variablen einige Nuancen mit sich bringt.
Beispiele wie dieses sind glaub ich jeder Mann bekannt, jedoch wuerde dies in Rust nicht funktionieren.
Hier kommen die Copy und Clone Traits in’s Spiel. Typen die den Copy Trait nicht implementieren wechseln den Besitzer sobald sie verschoben werden. Das inkludiert natuerlich auch Methodenaufrufe.
Sobald der Wert also aus einer Variable “gerissen wird”, ist diese nicht mehr valide und kann somit nicht mehr benutzt werden.
Was nun?
Nicht alle Hoffnung ist verloren, denn Gott sei Dank gibt es das Konzept des borrowings. Will man eine Variable rein lesend benutzen kann man einfach eine Referenz auf diese Vergeben. Braucht man jedoch Schreibzugriff benoetigt man eine mutable/unique Referenz. Da man mit diesen den Wert veraendern kann ist es eben nur erlaubt maximal eine mutable Referenzin einem Scope zu haben. Denkt man analog dazu an herkoemmliches Borgen wird schnell klar warum das der Fall ist. Wer wuerde schon gern ein Auto geborgt bekommen, welches 5min spaeter vom Besitzer die Reifen abgeschraubt bekommt.