如何在golang中以反射方式创建enum实例?
我正在尝试从它的reflect.Type和value创建一个enum实例如何在golang中以反射方式创建enum实例?,go,Go,我正在尝试从它的reflect.Type和value创建一个enum实例 主程序包 进口( “fmt” “反映” ) 键入工作日字符串 常数( 星期日工作日=“星期日” 星期一工作日=“星期一” ) func(day-WeekDay)WeekDay()bool{ 转换日{ 案件星期日、星期一: 返回真值 违约: 返回错误 } } func main(){ rt:=reflect.TypeOf(工作日(“星期日”)) x:=反射。新(rt) x=x.Elem() x、 集合(反映(“星期日”)的
主程序包
进口(
“fmt”
“反映”
)
键入工作日字符串
常数(
星期日工作日=“星期日”
星期一工作日=“星期一”
)
func(day-WeekDay)WeekDay()bool{
转换日{
案件星期日、星期一:
返回真值
违约:
返回错误
}
}
func main(){
rt:=reflect.TypeOf(工作日(“星期日”))
x:=反射。新(rt)
x=x.Elem()
x、 集合(反映(“星期日”)的价值)
fmt.Println(x.Interface())
}
有没有办法在golang中创建enum实例及其类型和可能的常量值?使用reflect.New(t).Elem()
获取值并设置值
// t is the reflect.Type for a Weekday
t := reflect.TypeOf(WeekDay("sunday"))
// v is reflect.Value for a WeekDay, initialized to the zero value ""
v := reflect.New(t).Elem()
// Set the value of v to "sunday"
v.SetString("sunday")
游乐场链接很好,但请在问题中包含代码。将第25行更改为x.Set(reflect.ValueOf(WeekDay(“sunday”))