我希望能够将结构的 FIELD 名称(而不是值)提取为字符串,将它们放在字符串切片中,然后使用这些名称在 Raylib(Go 的图形库)的菜单中打印在程序中其他位置。这样,如果我更改结构中的字段,菜单将自动更新,而无需返回并手动编辑它。因此,如果您看一下下面的结构,我想提取名称MOVING,SOLID,OUTLINE等,而不是布尔值。有没有办法做到这一点?type genatt struc {
moving, solid, outline, gradient, rotating bool
}
1 回答

月关宝盒
TA贡献1772条经验 获得超5个赞
您可以使用反射(反射
包)来执行此操作。获取反射。键入
结构值的描述符,并用于访问字段。Type.Field()
例如:
t := reflect.TypeOf(genatt{}) names := make([]string, t.NumField())for i := range names { names[i] = t.Field(i).Name } fmt.Println(names)
这将输出(在Go Playground上尝试):
[moving solid outline gradient rotating]
- 1 回答
- 0 关注
- 75 浏览
添加回答
举报
0/150
提交
取消