提取结构的 FIELD 名称,并将它们放入字符串切片中

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

type genatt struc {
    moving, solid, outline, gradient, rotating bool
    }


慕后森
浏览 76回答 1
1回答

月关宝盒

您可以使用反射(反射包)来执行此操作。获取反射。键入结构值的描述符,并用于访问字段。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]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go