枚举的命名跟结构体命名一样,必须以大写字母开头;枚举项的名称跟函数命名一样,必须是小写加下划线
也可以指定枚举值的值,枚举值也可以是负数
blue = 2 //可以指定初始值
green
white
black
}
enum Color3 {
blue = -4 //初始值也可以是负数
green
white
black
}
fn main() {
mut c := Color2.green
c = .blue
println(c) //输出blue
}
枚举也可以像结构体那样添加方法
red = 1
green
blue
black
white
}
fn (c Color) is_blue() bool { // 枚举方法
return c == .blue
}
fn main() {
b := Color.blue
if b.is_blue() {
println('yes')
println(b)
} else {
println(b)
}
枚举类型和整数类型是可以相互转换的
struct Abc {
mut:
flags []Flag
}
enum Flag {
flag_one
flag_two
flag_three
}
fn main() {
mut a := Abc{}
a.flags << .flag_one
a.flags << .flag_two
a.flags << .flag_three
println(a.flags)
}
可以像结构体和函数那样,给枚举添加自定义注解
关于注解的进一步使用,可以参考