#+ Go语言现阶段没有枚举类型,但是可以使用 const 常量配合上一节《Go语言常量》中介绍的 iota 来模拟枚举类型,请看下面的代码:
package seller
import (
"fmt"
"testing"
)
type Region int
const (
NA Region = iota
EU
FE
)
var Region_Name = map[string]int{
"NA": 0,
"EU": 1,
"FE": 2,
}
func (region Region) String() string {
switch region {
case NA:
return "NA"
case EU:
return "EU"
case FE:
return "FE"
}
return "NONE"
}
func TestEnum(t *testing.T) {
//字符串转枚举
str := "NA"
regionInt := Region_Name[str]
//枚举对象
region := Region(regionInt)
fmt.Printf("%v \n", region)
//对象转字符串
s := region.String()
naStr := NA.String()
fmt.Printf("%v %v \n", s, naStr)
}