rust trait(特征)
rust特征小示例
1 #[derive(Debug)] 2 pub struct User{ 3 pub name:String, 4 pub gender: bool, 5 pub age:u8, 6 } 7 // 特征(接口) 8 pub trait Cheat{ 9 fn new(name:String,gender:bool,age:u8) -> Self; 10 fn get_name(&self) -> String; 11 fn get_age(&self) -> u8; 12 } 13 14 impl Cheat for User{ 15 // 关联函数 16 fn new(name:String,gender:bool,age:u8) -> User{ 17 User{ 18 name:name, 19 gender:gender, 20 age:age, 21 } 22 } 23 24 // 方法 25 fn get_name(&self) -> String{ 26 self.name.clone() 27 } 28 fn get_age(&self) -> u8{ 29 self.age 30 } 31 } 32 //实现了xx特征的类型作为函数参数 33 pub fn show_impl(tmp:&impl Cheat){ 34 println!("name :{}",tmp.get_name()); 35 println!("age: {}",tmp.get_age()); 36 } 37 // 返回数据类型,此类型实现了xx特征 38 pub fn ret() -> impl Cheat{ 39 User{ 40 name:"def".to_string(), 41 gender:false, 42 age:59 43 } 44 } 45 fn main(){ 46 let ur = User::new("bob".to_string(),true,18); 47 println!["{:#?}",ur]; 48 println!("name is {},age {}",ur.get_name(),ur.get_age()); 49 50 show_impl(&ur); 51 52 let _rec =ret(); 53 }
作者:天使不设防
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
分类:
Rust
标签:
rust trait
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!