Rust——枚举
当一个变量有几种确定的取值情况下,可以将它定义为枚举类型。如性别选择(男/女)
通过 枚举名::枚举值 来访问获取枚举值
1.无参数枚举类型
#[derive(Debug)]
enum Sex{ //无参数枚举类型
male,
female,
}
fn main(){
let lilei = Sex::male;
let lily = Sex::female;
//结构体/枚举类型输出均{:?}
println!("lilei is a {:?} and lily is a {:?}",lilei,lily);
}
输出结果:

2.含参数枚举类型
区别于无参数枚举类型地方是,可以给枚举成员添加 元组属性
#[derive(Debug)] enum PayAccount{ ///支付帐号,带参数枚举类型 AlipayAccount(String), WechatAccount(String), BankAccount(u64), } enum People{ ///带参数枚举类型 ChinesePeople{nation:String,totalnumber:u128}, AmericanPeople{totalnumber:u128}, JapanesePeople{height:f64}, } fn main(){ let _alibaba = PayAccount::AlipayAccount(String::from("efun@qq.com")); let _wechat = PayAccount::WechatAccount(String::from("onlyefun")); let _bank = PayAccount::BankAccount(111122223333444); let zhonghuijie = People::ChinesePeople{ nation:String::from("han"),totalnumber:14_000_000_000_000_000}; match zhonghuijie{ People::AmericanPeople{totalnumber}=>{ println!("American number is {}",totalnumber); }, People::ChinesePeople{nation,totalnumber}=>{ println!("Chinese nation is {},totalnumber is {}",nation,totalnumber); }, People::JapanesePeople{height}=>{ println!("Japanese height is {}",height); } } println!("alibaba account is {:#?}",_alibaba); println!("Run End"); }
运行结果:

以上代码在VS Code中运行,结果如下:

中间少了邮箱地址邮件地址显示

去掉字符@后,正常显示

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

浙公网安备 33010602011771号