如何创建类似这样的Go结构
{Name:Test { App1:Version1 App2:Version2}}
使用Go App1/2
和Version1/2
是动态的。
我试过了以下内容,
type Final struct {
App string `json:"Name"`
Applications [] Application
}
type final []Final
type Application struct {
App string `json:`
}
final := Final {
Name:"Test",
Applications: []Application{
{GetApps()},
},
}
其中GetApps将返回应用程序详细信息的列表,而我希望有一个键值对,其中键将是Appname,值将是其详细信息。我只需要一个语法,请帮助
答案 0 :(得分:0)
如上所述,使用>>> with open('testing.txt') as fobj:
... res = tuple(ord(x) for line in fobj for x in line.strip())
>>> res
map
Final
的{{1}}可能就是你想要的。
Applications
然后您可以按照尝试分配它:
type Final struct {
Name string `json:"Name"`
Applications map[string]string
}
确保final := Final{
Name: "Test",
Applications: GetApps(),
}
返回GetApps()
,并在json编组时获得动态密钥。
请参阅an example here。
答案 1 :(得分:0)
我不明白为什么你需要任何动态的东西。这个重构似乎涵盖了你的情况:
type Application {
Name string
Detail string
}
type Final struct {
Name string
Applications []Application
}
func GetApps() []Application {
// ... Get a slice of Applications
return []Application{}
}
func main() {
final := Final{
Name: "Test",
Applications: []Application{}
}
for _, app := range GetApps() {
final.Applications = append(final.Applications, app)
}
// final is ready
}
类型Application
也可以像其他提到的map[string]string
或者它不重要的结构,因为类型在编译时是已知的,并且这里不需要动态类型。