15/07/15 23:54:13.14 Kkrt7iJt.net
極端な例になるけどこれを見て欲しい
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のどちらかを組み合わせることができる
それがトレイトの再利用
この場合トレイト型で区別しても意味が無い