Zum Inhalt springen

Traits

trait MakeNoise {
fn make_noise(&self) {
println!("(silence)");
}
}
struct Dog {}
struct Cat {}
impl MakeNoise for Dog {
fn make_noise(&self) {
println!("bark");
}
}
impl MakeNoise for Cat {}
fn main() {
let dog = Dog {};
let cat = Cat {};
dog.make_noise();
cat.make_noise();
}

Die Implementierung des MakeNoise-Traits bietet eine spezifische Implementierung für Dog und verwendet die Standardimplementierung für Cat. Daher gibt der Aufruf von make_noise für jede Instanz bark bzw. (silence) aus.


Die folgenden Aussagen beschreiben, welche Arten von Trait-Implementierungen in Rust erlaubt sind. Wählen Sie jede zutreffende Aussage aus.

Die „Orphan-Regel“ besagt, dass Sie keinen externen Trait für einen externen Typ implementieren können, um sicherzustellen, dass der Code nicht bricht, wenn zwei Crates widersprüchliche Implementierungen bereitstellen.