- プログラミング言語 Rust
346 :デフォルトの名無しさん[sage]:2015/07/15(水) 23:54:13.14 ID:Kkrt7iJt - 極端な例になるけどこれを見て欲しい
trait FooA { fn foo(&self) { self.bar1(); self.bar2(); } } trait FooB { fn foo(&self) { self.bar2(); self.bar1(); } } trait BarA { fn bar1(&self) { println!("A-1"); } fn bar2(&self) { println!("A-2"); } } trait BarB { fn bar1(&self) { println!("B-1"); } fn bar2(&self) { println!("B-2"); } } 一般的なトレイトだとFooAとFooBのどちらかとBarAとBarBのどちらかを組み合わせることができる それがトレイトの再利用 この場合トレイト型で区別しても意味が無い
|