枚举 enum 关键字允许创建一个从数个不同取值中选其一的枚举类型(enumeration)。任何一个在 struct 中合法的取值在 enum 中也合法。
在日常生活中很常见。比如:1 年有 12 个月,1 周有 7 天。
enum 枚举名称{
variant1,
variant2,
...
}
枚举名称::variant
#[derive(Debug)]
enum RoadMap {
Go语言极简一本通,
Go语言微服务架构核心22讲,
从0到Go语言微服务架构师,
}
//这是Go语言学习3个阶段
fn main() {
let level = RoadMap::从0到Go语言微服务架构师;
println!("level---{:?}",level);
}
#[derive(Debug)]
注解的作用,就是让 派生自
Debug`。
enum Option<T> {
Some(T), // 用于返回一个值
None // 用于返回 null,用None来代替。
}
Option
枚举经常用在函数中的返回值
,它可以表示有返回值,也可以用于表示没有返回值。如果有返回值。可以使用返回 Some(data),如果函数没有返回值,可以返回 None。
fn getDiscount(price: i32) -> Option<bool> {
if price > 100 {
Some(true)
} else {
None
}
}
let p=666; //输出 Some(true)
// let p=6;//输出 None
let result = getDiscount(p);
println!("{:?}",result)
判断一个枚举变量的值,唯一操作符就是 match。
fn print_road_map(r:RoadMap){
match r {
RoadMap::Go语言极简一本通=>{
println!("Go语言极简一本通");
},
RoadMap::Go语言微服务架构核心22讲=>{
println!("Go语言微服务架构核心22讲");
},
RoadMap::从0到Go语言微服务架构师=>{
println!("从0到Go语言微服务架构师");
}
}
}
print_road_map(RoadMap::Go语言极简一本通);//输出 Go语言极简一本通
print_road_map(RoadMap::Go语言微服务架构核心22讲);//输出 Go语言微服务架构核心22讲
print_road_map(RoadMap::从0到Go语言微服务架构师);//输出 从0到Go语言微服务架构师
enum 枚举名称{
variant1(数据类型1),
variant2(数据类型2),
...
}
#[derive(Debug)]
enum StudyRoadMap{
Name(String),
}
let level3 = StudyRoadMap::Name(String::from("从0到Go语言微服务架构师"));
match level3 {
StudyRoadMap::Name(val)=>{
println!("{:?}",val);
}
}
//输出 "从0到Go语言微服务架构师"
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。