MST

星途 面试题库

面试题:Rust中trait完全限定语法在简单场景的应用

假设有一个`trait`叫`Printable`,包含一个方法`print`。另外有两个结构体`A`和`B`都实现了`Printable`。现在有一个函数`print_thing`,它接收一个`&dyn Printable`类型的参数。请使用trait完全限定语法在`print_thing`函数中调用`print`方法,确保即使存在方法同名冲突也能正确调用。请写出完整代码。
46.4万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
trait Printable {
    fn print(&self);
}

struct A;
struct B;

impl Printable for A {
    fn print(&self) {
        println!("A is printed");
    }
}

impl Printable for B {
    fn print(&self) {
        println!("B is printed");
    }
}

fn print_thing(thing: &dyn Printable) {
    <dyn Printable>::print(thing);
}

fn main() {
    let a = A;
    let b = B;
    print_thing(&a);
    print_thing(&b);
}