Keyword enum[−][src]
Expand description
可以是几个成员中任何一个的类型。
Rust 中的枚举与其他编译语言 (如 C) 相似,但有一些重要区别,使它们的功能更加强大。 如果您来自函数式编程背景,那么 Rust 所谓的枚举通常被称为 代数数据类型。 重要的细节是每个枚举成员都可以拥有数据。
enum SimpleEnum { FirstVariant, SecondVariant, ThirdVariant, } enum Location { Unknown, Anonymous, Known(Coord), } enum ComplexEnum { Nothing, Something(u32), LotsOfThings { usual_struct_stuff: bool, blah: String, } } enum EmptyEnum { }Run
显示的第一个枚举是在 C 风格语言中常见的一种枚举。
第二个示例展示了一个存储位置数据的假设示例,其中 Coord
是需要的任何其他类型,例如结构体。
第三个示例演示了成员可以存储的数据类型,从无到有,到元组,再到匿名结构体。
实例化枚举成员涉及显式地使用枚举的名称作为它的命名空间,后跟一个成员。
SimpleEnum::SecondVariant
从上面是一个例子。
当数据跟一个成员一起使用时,例如 rust 的内置 Option
类型,该数据将按类型描述添加,例如 Option::Some(123)
。
类似于结构体的成员也是如此,类似 ComplexEnum::LotsOfThings {通常 _struct_stuff: true, blah: "hello!".to_string(), }
.
空枚举与 !
相似,因为它们根本无法实例化,并且主要用于以有趣的方式弄乱类型系统。