Nim lang Nim中的字符串枚举类型?
是否可以为字符串定义类似枚举的类型?我知道枚举,但不想在这种情况下使用枚举,我想把它当作一个字符串来使用Nim lang Nim中的字符串枚举类型?,nim-lang,Nim Lang,是否可以为字符串定义类似枚举的类型?我知道枚举,但不想在这种情况下使用枚举,我想把它当作一个字符串来使用 type Blog = object text: string priority: "low" | "normal" | "high" echo Blog(text: "something...", priority: "high") 枚举可以附加一个字符串值。转换器可用于
type Blog = object
text: string
priority: "low" | "normal" | "high"
echo Blog(text: "something...", priority: "high")
枚举可以附加一个字符串值。转换器可用于将字符串自动解析为枚举。示例(): 输出:
(text: "something...", priority: high)
(text: "something...", priority: low)
invalid enum value: medium
类型定义和转换器可能在宏中实现自动化,例如:
stringEnum:
Priority = ["low", "medium", high"]
作为读者的练习,实现宏left:)谢谢,这解决了我的问题,我不知道该功能!不过有一个警告:据我所知,nim中的枚举实际上只存储为序数,它们的字符串表示形式只能用于priniting。在本例中,完成了相反的操作,但无法将Priority.pLow发送到需要字符串的proc,这就是为什么这里需要转换器,但有点违背枚举的目的。。。
stringEnum:
Priority = ["low", "medium", high"]