我想知道是否可以在Rust中创建具有常量字符串值的enum
?
我发现了之前的问题:How do I get an enum as a string?,它显示了一个变通方法,我可以使用它来字符串化enum
的变体(我可以在enum
变体上使用.to_string()
,并将它们的名称作为字符串)。
这个问题很有帮助,但这正是我想要达到的目标:
enum StringEnum {
Hello = "Hello",
World = "World"
}
我想知道是否可以在Rust中创建具有常量字符串值的enum
?
我发现了之前的问题:How do I get an enum as a string?,它显示了一个变通方法,我可以使用它来字符串化enum
的变体(我可以在enum
变体上使用.to_string()
,并将它们的名称作为字符串)。
这个问题很有帮助,但这正是我想要达到的目标:
enum StringEnum {
Hello = "Hello",
World = "World"
}
2条答案
按热度按时间but5z9lq1#
如果你有这样的枚举:
Hello
和World
是枚举 * 变量 *。枚举的每个变量都被赋给一个整数值。这就是discriminant。目前,判别式只允许是整数,而不是像&'static str
这样的任意类型,尽管将来可能会改变。如果你想把枚举转换成字符串,你可以写一个方法来手动完成:
或者,您可以使用
strum_macros
板条箱来完成此操作:How do I get an enum as a string?中还提到了其他一些方法
tp5buhyn2#
您还可以使用带有数据的枚举
然后this会给予“测试”值。