Ich habe den folgenden Code:
%Vor%und den folgenden Fehler erhalten:
%Vor%Ich glaube, ich verstehe, dass der Inhalt von Vektoren und Slices unveränderlich ist und das den Fehler hier verursacht, aber ich bin unsicher.
Die Signatur von as_mut_slice
ist pub fn as_mut_slice<'a>(&'a mut self) -> &'a mut [T]
, also sollte die Scheibe änderbar sein, aber irgendwie nicht.
Ich weiß, dass es eine einfache Lösung geben muss, aber ich habe mein Bestes versucht und konnte es nicht zum Laufen bringen.
Sie sind sehr nah dran. Dies sollte funktionieren:
%Vor% &mut [T]
ist implizit mit &[T]
kombinierbar, und Sie haben mit slice
die Variable &[uint]
annotiert, sodass das Segment unveränderlich wurde: &mut [uint]
wurde in &[uint]
umgewandelt. mut
für die Variable ist hier nicht relevant, da Slices nur in Daten ausgelagert werden, die jemand anderem gehört. Daher haben sie keine vererbte Veränderlichkeit - ihre Veränderlichkeit ist in ihren Typen kodiert.
Tatsächlich benötigen Sie keine Annotation für slice
. Dies sollte auch funktionieren:
Sie sollten den offiziellen Leitfaden lesen, in dem die Konzepte von Eigentum und Fremdkapital und ihre Interaktion mit Wandelbarkeit erläutert werden .
Tags und Links mutability rust immutability iterator