Ich versuche, ein Array von Strukturen in Rust mit dem folgenden Code-Snippet zu initialisieren:Wie implementiere ich das Copy-Merkmal?
enum Direction {
North,
East,
South,
West,
}
struct RoadPoint {
direction: Direction,
index: i32,
}
let data = [RoadPoint { direction: Direction::East, index: 1 }; 4]; // Initialise the array, but failed.
Wenn ich es kompilieren, es beschwert sich, dass die Copy
Eigenschaft nicht implementiert.
<anon>:44:16: 44:67 error: the trait `core::marker::Copy` is not implemented for the type `main::RoadPoint` [E0277]
<anon>:44 let data = [RoadPoint { direction: Direction::East, index: 1 }; 4];
Kann mir jemand in die richtige Richtung zeigen, ein Kopiermerkmal zu implementieren?
'# [ableiten (Klonen, Kopieren)]' ist der richtige Weg, aber für die Aufzeichnung ist es nicht magisch: Es ist einfach, diese Merkmale manuell zu implementieren, besonders in einfachen Fällen wie dem Ihren: 'impl Copy for Direction { } impl Klon für Richtung {fn Klon (& selbst) -> Selbst {* selbst}} ' – delnan
@delnan Auch wenn es kurz ist, denke ich, dass es verdient, eine Antwort unten zu sein. Es ist absolut gültig. – Shepmaster