0
我有以下代碼:實現繼承的衍生性狀的實現模塊功能
trait A {
fn foo(&self);
}
trait B {
fn bar(&self);
}
trait C : A + B {
}
struct S;
impl A for S {
fn foo(&self) {
println!("In S->foo()");
}
}
impl B for S {
fn bar(&self) {
println!("In S->bar()");
}
}
impl C for S {
}
fn main() {
let s = S;
s.foo();
s.bar();
}
(防鏽操場鏈接:http://is.gd/pde2LE)
是否有可能只實現C
爲S
和實施foo
和bar
該實現塊中的函數?我嘗試以下,但它失敗:
trait A {
fn foo(&self);
}
trait B {
fn bar(&self);
}
trait C : A + B {
}
struct S;
impl C for S {
fn foo(&self) {
println!("In S->foo()");
}
fn bar(&self) {
println!("In S->bar()");
}
}
fn main() {
let s = S;
s.foo();
s.bar();
}
(防鏽操場鏈接:http://is.gd/CqA6J5)
不,這是不可能的。 – Veedrac