- プログラミング言語 Rust
328 :デフォルトの名無しさん[sage]:2015/06/29(月) 17:09:32.97 ID:9FsJz544 - trait FooExt : Foo { .. } ってのは、単にFooExtを実装する型はFooも実装しなければならない、という意味しかない。
FooトレイトをimplするだけでFooExtトレイトも使えるようにしたい、という目的なら、 impl<F: Foo> FooExt for F { ... } とすると良い。 struct STFoo; impl Foo for STFoo { ... } とかすると、STFooはFooExtのメソッドも呼び出せる。 FooとFooExtに同じ名前のメソッドdo_foo(&self)があったときは、呼び出し側でFoo::do_foo(&foo)とかしないといけない。 OOPでアップキャストが必要な場面ってあったっけ?
|
|