Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在golang中以反射方式创建enum实例?_Go - Fatal编程技术网

如何在golang中以反射方式创建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、 集合(反映(“星期日”)的

我正在尝试从它的reflect.Type和value创建一个enum实例

主程序包
进口(
“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”))