golang 中的枚举类型
枚举 enum 类型 的实质是常量的一组集合。主要起到限制范围的作用。
譬如: 在 C 中 定义一个枚举类型。
//s定义枚举类型 enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN }; // 再定义枚举变量 enum DAY day;
这样 DAY 的值就被限定在 枚举类型 中的几个值,也就是 1,2,3,4,5,6,7。 如果直接将 DAY 定义为 int 那么范围就太大了。
golang 中的枚举
go语言并没有提供 enum的定义,我们可以使用 const 来模拟枚举类型。
//定义枚举 type PolicyType int32 const ( Policy_MIN PolicyType = 0 Policy_MAX PolicyType = 1 Policy_MID PolicyType = 2 Policy_AVG PolicyType = 3 ) //使用枚举 func foo(p PolicyType) { fmt.Printf("enum value: %v\n", p) } func main() { foo(Policy_MAX) }
给 enum 添加输出函数,把枚举数字常量变换成字符串。
func (p PolicyType) String() string { switch (p) { case Policy_MIN: return "MIN" case Policy_MAX: return "MAX" case Policy_MID: return "MID" case Policy_AVG: return "AVG" default: return "UNKNOWN" } }
0顶
0 踩
共 0 条评论