MST
星途 面试题库

面试题:Rust trait关联函数的泛型与约束

假设你要定义一个trait,其中包含一个关联函数,该函数接受一个泛型参数,并对这个泛型参数有特定的trait约束。请写出完整的trait定义、实现以及使用该trait的示例代码,说明如何确保传递给关联函数的参数满足这些约束。
37.4万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义trait
trait MyTrait {
    // 关联函数,泛型参数T需要实现Debug trait
    fn my_associated_function<T: std::fmt::Debug>(param: T);
}

// 实现MyTrait
struct MyStruct;
impl MyTrait for MyStruct {
    fn my_associated_function<T: std::fmt::Debug>(param: T) {
        println!("The parameter is: {:?}", param);
    }
}

// 使用MyTrait
fn main() {
    let my_struct = MyStruct;
    let number = 42;
    my_struct.my_associated_function(number);

    // 下面这行代码会编译错误,因为String没有实现Debug trait
    // let string = "hello".to_string();
    // my_struct.my_associated_function(string);
}