说我有一个结构体:
type DriverData struct {
TypePath string = "Foo.Bar.DriverData"
}
我希望能够引用TypePath
而不必创建该结构的实例,例如:
typePath := DriverData.TypePath
但是在Golang中是不可能的。
所以我在想-也许有一种方法可以创建地图,并将类型与字符串相关联,例如:
type DriverData struct {
}
type PilotData struct {
}
type BoatmasterData struct {
}
typeMap := map[struct]string{
DriverData: "Foo.Bar.DriverData",
PilotData: "Foo.Bar.PilotData",
BoatmasterData: "Foo.Bar.BoatmasterData",
}
问题:
这是在结构上创建静态属性的最佳方法吗?像这样在地图中存储静态属性吗?
答案 0 :(得分:3)
您可以定义为您提供这些值的方法:
type DriverData struct {
}
func (DriverData) Path() string {
return "Foo.Bar.DriverData"
}
type PilotData struct {
}
func (PilotData) Path() string {
return "Foo.Bar.PilotData"
}
type BoatmasterData struct {
}
func (BoatmasterData) Path() string {
return "Foo.Bar.BoatmasterData"
}
那是你想要的吗?