Warum sind Booleans kopierbar, obwohl die Dokumentation dies nicht anzeigt?

8

Ich versuche das Eigentums- und Kreditkonzept zu verstehen. Zuerst dachte ich, dass es ziemlich einfach ist, sobald du es verstanden hast. Aber ...

%Vor%

Zuerst hätte ich erwartet, dass das nicht kompiliert wird, weil a in _y verschoben worden wäre.

Ich war ein bisschen verwirrt, aber Ich habe herausgefunden, dass ich es gewesen wäre Richtig, außer dass i32 eine Ausnahme von der Regel darstellt, weil sie das Kopiermerkmal implementiert.

Ich habe mir das Copy Merkmal angesehen und wie ich es verstehe, sie Liste alle Typen auf, die dieses Merkmal unten implementieren.

Also ist der bool -Typ nicht vorhanden und so nahm ich an, dass das Standardverhalten "verschoben" wurde. Aber ...

%Vor%

Scheitert auch nicht.

Jetzt bin ich ziemlich verwirrt. Ich habe das Clone Merkmal gefunden, das eng mit dem Kopiermerkmal verwandt zu sein scheint. Aber wenn ich es nicht verpasse, erwähnen sie es im Lerndokument nicht wirklich.

Kann mir jemand mehr Infos geben?

Aktualisierung:

  1. Ich habe ein Problem im Rust-Repository eingereicht .
  2. Ich habe auch eine Pull-Anfrage mit einigen Änderungsvorschlägen gemacht.
Mathieu David 29.05.2015, 23:11
quelle

1 Antwort

8

Ihr Verständnis ist ziemlich genau, das scheint ein Problem mit den Dokumenten zu sein. Die Dokumentation zeigt Copy -Instanzen für einen der Primitivtypen nicht an, obwohl sie definitiv Copy sind. Als ein Beispiel, um zu zeigen, dass der Compiler bool als Copy betrachtet, kompiliert das folgende einfach:

%Vor%     
fjh 29.05.2015, 23:46
quelle

Tags und Links