在 Rust 中,似乎可以定义一个具有基本类型作为表示的枚举:
enum A {
f64,
i32
}
我如何使用这样的枚举?例如,我将如何创建实例以及如何使用匹配语句来处理不同的原始类型?
最佳答案
(此答案截至 0.9)
这并不像您认为的那样。它正在创建一个枚举 A
,其中包含 named f64
和 i32
变体,而不是使用这些类型。由于类型和其他一切(变量等)共享不同的命名空间,您可能不会注意到。使用原始枚举的示例:
enum A {
f64,
i32
}
fn main() {
let x: A = f64;
let y: A = i32;
match x {
f64 => println!("got f64"),
i32 => println!("got i32")
}
}
要实际包装这些类型的值,您需要使用“类似元组的变体”:
enum A {
Float(f64),
Int(i32)
}
fn main() {
let x: A = Float(42.0);
let y: A = Int(7);
match x {
Float(value) => println!("got Float({})", value),
Int(value) => println!("got Int({})", value)
}
}
关于rust - Rust 枚举中的原始类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21214964/