有没有办法做这样的事情?有没有办法创建一个枚举值的别名?
enum MyType {
Left,
Right,
#[cfg(universe = "normal")]
Port = Left,
#[cfg(universe = "normal")]
Starboard = Right,
#[cfg(universe = "mirror")]
Port = Right,
#[cfg(universe = "mirror")]
Starboard = Left,
}
如果你真正尝试它,你得到这个错误(我不得不添加MyType::
):
error[E0080]: constant evaluation error
--> <anon>:9:12
|
9 | Port = MyType::Left,
| ^^^^^^^^^^^^ unimplemented constant expression: enum variants
Here是其中触发该错误。
是的我试图创建别名。 Rust已经具有类型别名,没有问题。你可以举一个支持枚举变体别名的方式,因为我看不到任何东西的一个例子。 – Timmmm
@Timmmm:问题是模式匹配。如果你有'匹配x {一个=> {},两个=> {}}',那么采取哪一种手段? –
这不是问题。它的行为与您写'match x {One => {},One => {}}'的行为完全一样,即打印错误。 (它实际打印的错误是'这是一个无法访问的模式'。) – Timmmm