有沒有辦法做這樣的事情?有沒有辦法創建一個枚舉值的別名?
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