为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕后森 2022-08-30 22:02:07
我希望能够将结构的 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]


查看完整回答
反对 回复 2022-08-30
  • 1 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号