Avatar ·

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

你好!我刚开始学习Rust,遇到了一个问题。我有一个描述颜色的枚举: ```rust enum Color { Red, Green, Blue, Yellow, } ``` 我需要将所有可能的颜色输出到控制台,但不知道如何实现。在其他语言(例如Python或Java)中,我只需使用for循环或获取所有值的列表,但在Rust中我没有找到内置的方法。 我尝试过类似这样的代码: ```rust for color in Color { println!("{:?}", color); } ``` 但编译器报错:`Color` 没有实现 `Iterator` trait。 我听说Rust是一种没有运行时反射的语言,可能枚举本身并不设计用于迭代。但我觉得奇怪的是,在静态类型语言中竟然没有遍历所有变体的方法。也许我遗漏了什么?有没有什么宏或库可以实现这一点? 请告诉我如何正确解决这个问题。我确实需要遍历所有变体。