Rust——函数泛型
泛型函数类似于其他编程语言中的多态
格式:
fn 函数名<T>()
以下为一个简单的事例:
#[derive(Debug)]
struct BillPaper<T1,T2,T3,T4>{ //定义一个账单结构体(包含时间/金额/交易内容/交易方式)
Time:T1,
Amount:T2,
Content:T3,
PayType:T4,
}
impl<T1,T2,T3,T4> BillPaper<T1,T2,T3,T4>{ //泛型结构体方法定义
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<T>(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);
}
运行结果:

------------------------------------
承接
**视觉检测软件开发及调试
**工业软件开发
**上位机软件开发
wechat:luoran2024
qq:565934058
email:taoyuansu@qq.com
海量教育资源及影视资源下载
微信公众号:EFun科技
------------------------------------

浙公网安备 33010602011771号