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