Als Referenz verwende ich Rust 0.7.
Ich versuche, eine Stack-Implementierung zu erstellen, die eine verknüpfte Liste verwendet, und ich stehe in Schwierigkeiten.
%Vor% Wenn ich rustc stack.rs
versuche, bekomme ich den folgenden Fehler:
Entweder die Zuweisung von sich selbst (was ich denke, beinhaltet das Konstruieren einer neuen Sache daraus, wie im Fall von Link(item, *self)
impliziert einen Zug . Dies bedeutet, dass das self im Prozess des Konstruierens des neuen Link
unbrauchbar wird, weil:
"Nachdem ein Wert verschoben wurde, kann er nicht mehr vom Quellstandort verwendet werden und wird dort nicht zerstört."
The Right Way ™ ist wahrscheinlich am besten dokumentiert durch das, was in diesem Beispiel gemacht wurde die stdlib . Es ist eine doppelt verknüpfte Liste, und es wird verwaltet, aber es ist veränderbar, und ich hoffe, dass es frei kopiert wird. Es gibt auch eine Liste nützlicher Containertypen .
Ich habe es jedoch geschafft, diese unveränderliche Version Ihrer Datenstruktur zum Laufen zu bringen.
%Vor%Tags und Links rust