Rust——函数泛型
泛型函数类似于其他编程语言中的多态
格式:
fn 函数名
以下为一个简单的事例:
#[derive(Debug)] struct BillPaper{ //定义一个账单结构体(包含时间/金额/交易内容/交易方式) Time:T1, Amount:T2, Content:T3, PayType:T4, } impl BillPaper { //泛型结构体方法定义 fn time(&self)->&T1{ &self.Time } fn amount(&self)->&T2{ &self.Amount } fn content(&self)->&T3{ &self.Content } fn payType(&self)->&T4{ &self.PayType } } //用户等级 #[derive(Debug)] enum UserLevel{ Nomal, Vip, Svip, } #[derive(Debug)] struct UserInfo{ userNo:u32, userName:String, userLevel:UserLevel, } //自定义函数泛型 fn get_message (message:T){ let _=message; } fn main(){ let customer1 = UserInfo{ userNo:05091314, userName:String::from("zp"), userLevel:UserLevel::Svip, }; let billPaper1 = BillPaper{ Time:("2022/01/12 12:05:09"), Amount:520, Content:"product", PayType:"Bank", }; get_message("print custom info:"); println!("Customer info status---{:#?}",customer1); get_message(00000); println!("Bill info status---{:#?}",billPaper1); }
运行结果: