Ich fand in der Bibliothek Referenz für std::rc::Rc
diese Zielimplementierung
Was bedeutet das Ausrufezeichen vor Send
?
Ich habe sowohl die The Rust Programmiersprache ¹ Buch und The Rust Reference ², fand aber keine Erklärung. Bitte geben Sie eine Referenz in Ihrer Antwort.
¹ besonders die [section 3.19 Traits
Es handelt sich um eine negative Eigenschaftenimplementierung für das Merkmal Send
, wie in RFC 19 .
Zusammenfassung: Das Merkmal Send
ist ein unsicheres Merkmal . Der RFC sagt:
[Es] ist nicht sicher zu implementieren, weil die Implementierung semantische Garantien liefert, die, wenn sie kompromittiert werden, die Speichersicherheit auf eine tiefe Art und Weise bedrohen.
Sie sind standardmäßig für alle Typen implementiert:
%Vor% Beachten Sie ..
als Syntax für eine Standardimplementierung. Das Merkmal darf auch keine Methoden definieren. Eine Standardimplementierung ist ein Markermerkmal, das von allen Typen implementiert wird.
Um also Send
zu deaktivieren, schreiben Sie eine negative Trait-Implementierung:
Dies ist ein negatives Merkmal impl , so dass Sie es als aus dem Send
Merkmal herauslesen lesen können.