【Rust】枚举
2021/11/30 23:07:39
本文主要是介绍【Rust】枚举,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
环境
- Rust 1.55.0
- VSCode 1.59.1
概念
参考:https://doc.rust-lang.org/stable/rust-by-example/custom_types/enum.html
enum
关键字允许创建一个从数个不同取值中选其一的枚举类型(enumeration)。
任何一个在 struct
中合法的取值在 enum
中也合法。
示例
enum WebEvent { // 单元类型的枚举 PageLoad, PageUnload, // 元组类型的枚举 KeyPress(char), Paste(String), // C 类型的枚举 Click { x: i64, y: i64 }, }
单元类型
enum WebEvent { // 单元类型的枚举 PageLoad, PageUnload, }
元组类型
enum WebEvent { // 元组类型的枚举 KeyPress(char), Paste(String), }
C 类型
enum WebEvent { // C 类型的枚举 Click { x: i64, y: i64 }, }
简单使用
enum WebEvent { // 单元类型的枚举 PageLoad, PageUnload, // 元组类型的枚举 KeyPress(char), Paste(String), // C 类型的枚举 Click { x: i64, y: i64 }, } fn inspect(event: WebEvent) { match event { WebEvent::PageLoad => println!("page loaded"), WebEvent::PageUnload => println!("page unloaded"), WebEvent::KeyPress(c) => println!("pressed '{}'.", c), WebEvent::Paste(s) => println!("pasted \"{}\".", s), WebEvent::Click { x, y } => { println!("clicked at x={}, y={}.", x, y); } } } fn main() { let pressed = WebEvent::KeyPress('x'); // `to_owned()` creates an owned `String` from a string slice. let pasted = WebEvent::Paste("my text".to_owned()); let click = WebEvent::Click { x: 20, y: 80 }; let load = WebEvent::PageLoad; let unload = WebEvent::PageUnload; inspect(pressed); inspect(pasted); inspect(click); inspect(load); inspect(unload); }
总结
了解了 Rust 中的枚举类型,有三种类型的枚举风格,简单使用了枚举类型。
附录
这篇关于【Rust】枚举的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略