rust通过泛型给结构体添加方法,示例
trait IUser {
fn set_name(&mut self, name: &str);
}
trait GUser: IUser {
fn gen_name(&mut self) {
self.set_name("default");
}
}
struct User {
name: String,
}
impl IUser for User {
fn set_name(&mut self, name: &str) {
self.name = String::from(name)
}
}
impl<R: IUser + ?Sized> GUser for R {}
fn main() {
let mut u = User { name: "".to_string() };
u.gen_name();
}
本文展示了如何使用Rust编程语言的泛型和Trait来为结构体添加方法。通过定义`IUser`和`GUser`两个Trait,其中`GUser`扩展了`IUser`,并在`User`结构体上实现这两个Trait,实现了`set_name`和`gen_name`方法。在`main`函数中创建了一个`User`实例并调用这些方法,演示了 Trait 的使用和泛型的灵活性。
2582

被折叠的 条评论
为什么被折叠?



