06 Rust 枚举类
2023-12-18 05:59:49
简单使用
enum Person {
Good,
Bad
}
let p1 = Person::Good;
为枚举成员添加属性
#[derive(Debug)]
enum Person {
Good(String), // 元组的方式描述属性
Bad { name: String }, // 结构体方式描述属性, 可为属性命名
}
fn main() {
let p1 = Person::Good("Jim".to_string());
let p2 = Person::Bad {
name: "Tom".to_string(),
};
match p1 {
// 元组属性名称可自定义化, 但顺序需一致
Person::Good(n) => {
println!("{}, Good person", n);
},
// 结构体形式名称需和定义时一致
Person::Bad {name} => {
println!("{}, Bad person", name);
}
}
// 使用 if let 语法进行枚举类型判断
if let Person::Good(_) = p2 {
println!("Good person");
} else {
println!("Not a good person");
}
}
Option 枚举类
Rust 在语言层面彻底不允许空值 null 的存在,但无奈null 可以高效地解决少量的问题,为此引入了 Option 枚举类
enum Option<T> {
Some(T),
None,
}
let opt = Option::Some("Hello");
// 在使用前进行判断
if let Option::None = opt {
println!("opt is none!");
return;
}
// 通过 unwrap 获取 Some 内部实际值
println!("{}", opt.unwrap());
// 初始值为空的 Option 必须明确类型
let opt: Option<&str> = Option::None;
// 由于 Option 是 Rust 编译器默认引入的
// 在使用时可以省略 Option:: 直接写 None 或者 Some()
match opt {
Some(value) => println!("{}", value),
None => println!("opt is None"),
}
文章来源:https://blog.csdn.net/qq_36525177/article/details/135042826
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!