Avatar ·

如何在 Rust 中遍历枚举的所有变体?

大家好!我刚开始学习 Rust,遇到了一个问题。我有一个描述颜色的枚举: ```rust enum Color { Red, Green, Blue, Yellow, } ``` 我需要将所有可能的颜色输出到屏幕,或者例如将它们保存到 vector 中。在其他语言(如 Java 或 C#)中,我会使用 `values()` 或类似的方法。但在 Rust 中,我没有找到内置的方法来简单地遍历 `enum` 的所有变体。 我尝试过写类似这样的代码: ```rust for color in Color { println!("{:?}", color); } ``` 但编译器报错说 `Color` 没有实现 `Iterator` trait。我知道 Rust 是一种系统语言,有自己的哲学,但难道就没有简单的方法来遍历枚举的所有常量吗?也许有某种宏或库?或者每次都需要手动编写一个返回所有变体的函数? 请告诉我正确的方法。提前感谢! <<>>

解决方案:使用