当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Julia Enums.@enum用法及代码示例

用法:

@enum EnumName[::BaseType] value1[=x] value2[=y]

创建一个名为 EnumNameEnum{BaseType} 子类型和 value1value2 的枚举成员值,可选分配的值分别为 xyEnumName 可以像其他类型和枚举成员值一样用作常规值,例如

例子

julia> @enum Fruit apple=1 orange=2 kiwi=3

julia> f(x::Fruit) = "I'm a Fruit with value: $(Int(x))"
f (generic function with 1 method)

julia> f(apple)
"I'm a Fruit with value: 1"

julia> Fruit(1)
apple::Fruit = 1

也可以在 begin 块内指定值,例如

@enum EnumName begin
    value1
    value2
end

BaseType ,默认为 Int32 ,必须是 Integer 的原始子类型。成员值可以在枚举类型和 BaseType 之间转换。 readwrite 会自动执行这些转换。如果使用非默认 BaseType 创建枚举,则 Integer(value1) 将返回类型为 BaseType 的整数 value1

要列出枚举的所有实例,请使用 instances ,例如

julia> instances(Fruit)
(apple, orange, kiwi)

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.Enums.@enum — Macro。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。