Ist es möglich, einen Typ nur beweglich und nicht kopierbar zu machen?

Anmerkung des Herausgebers: Diese Frage wurde vor Rust 1.0 gestellt und einige der Behauptungen in der Frage sind in Rust 1.0 nicht unbedingt wahr. Einige Antworten wurden aktualisiert, um beide Versionen zu adressieren.

Ich habe diese Struktur

struct Triplet {
    one: i32,
    two: i32,
    three: i32,
}

Wenn ich dies an eine Funktion übergebe, wird es implizit kopiert. Jetzt habe ich manchmal gelesen, dass einige Werte nicht kopierbar sind und daher verschoben werden müssen.

Wäre es möglich, diese Struktur zu machenTriplet nicht kopierbar? Zum Beispiel wäre es möglich, ein Merkmal zu implementieren, das machen würdeTriplet nicht kopierbar und daher "beweglich"?

Ich habe irgendwo gelesen, dass man das umsetzen mussClone Eigenschaft, Dinge zu kopieren, die nicht implizit kopierbar sind, aber ich habe nie darüber gelesen, dass etwas implizit kopierbar ist und nicht kopierbar ist, sodass es sich stattdessen bewegt.

Macht das überhaupt Sinn?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage