Sie haben ein paar Probleme:
Sie haben &mut
an die falsche Stelle gesetzt; &mut
ist Teil des Typs, nicht das Argument (es sei denn, Sie zerstören das Argument, was Sie nicht sind).
Sie können das Argument struct
nicht aufrufen, weil das ein Schlüsselwort ist.
Sie können eine veränderbare Referenz nicht mit einer direkten Zuweisung zuweisen.
Also, mit diesen Gedanken, hier ist eine funktionierende Lösung:
%Vor% Der Schlüssel hier ist, dass ref
in einem Muster by-reference bindet; Wenn Sie das mit mut
kombinieren, erhalten Sie eine änderbare Referenz. Insbesondere erhalten Sie ein Paar &mut i32
s. Da es sich um Verweise handelt, müssen Sie die Verweise auf sie aufheben, um sie durch sie zuzuweisen (andernfalls würden Sie versuchen, die Referenz selbst neu zuzuweisen).
Sie haben zwei leicht unterschiedliche Fragen.
Sie können eine veränderbare Bindung erstellen, indem Sie mut
zweimal sagen:
Aber damit es sich im ursprünglichen Tupel ändert, brauchen Sie eine veränderbare Referenz in dieses Tupel:
%Vor%Tags und Links rust