// 定义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);
}