模块中的枚举

时间:2017-10-25 17:54:59

标签: enums julia

我正在尝试在模块中使用枚举但没有成功:

# module for testing enums
module EE
export EnumTest
@enum EnumTest uu ii dd 
end # module

我在repl中做了importall EE。在此之后,我使用结果

检查了枚举值的存在instances(EE.EnumTest)
 (uu::EE.EnumTest = 0, ii::EE.EnumTest = 1, dd::EE.EnumTest = 2)

(如预期的那样)。

当我尝试使用uu::EE.EnumTest返回/打印值时,它只是抛出异常UndefVarError。我不指望这个。如何使用该值?

1 个答案:

答案 0 :(得分:4)

模块中的export语句只会使您列出的名称可在模块外部使用。您只列出了EnumTest - 枚举的整体类型 - 并没有列出任何实例。

您可以通过使用模块名称(EE.uu)对其进行全面限定或将其添加到导出列表(export EnumTest, uu, ii, dd)和using EE来访问实例。请注意,此处不需要importall,在0.7中的情况下,不推荐使用using