0
创建一个功能我有一个像这么一些结构:从重复范围
type Datacenter struct {
Name string
Key string
Hosts []Host
}
type Host struct {
Name string
Port int
}
当填充这些结构,它们是这样的:
[]config.Datacenter (len=2) {
Datacenter {
Name: "dc1",
Key: "string",
Hosts: []config.Host (len=1) {
Host {
Name: "dc1-server-1",
Port: 8200 (int)
}
}
},
Datacenter {
Name: "dc2",
Key: "Another string",
Hosts: []config.Host (len=2) {
Host {
Name: "dc2-server-1",
Port: 8200 (int)
},
Host {
Name: "dc2-server-2",
Port: 8200 (int)
}
}
}
}
我创建一个CLI工具,和几乎每一个命令,我在范围内,这些结构以这种方式:
for _, d := range datacenters {
if datacenter == d.Name || datacenter == "" {
for _, h := range d.Hosts {
// do something on each host in the range here
}
}
}
因为我是一个可怕的,可怕的去开发,我知道有一个更好的方法来做到这一点。代码目前不是很干,我从字面上把这个范围应用到每个新的子命令中,这看起来很糟糕,一般让我觉得很蠢。
我想我需要创建一个函数,并在里面做测距,然后决定返回值。我无法弄清楚它应该是什么,概念不在那里。任何帮助将不胜感激。
这看起来正是我需要的。 这里有什么结构?如果我想重新学习它,我将如何再次搜索。有时候最难的事情就是Google要找的东西。 – jaxxstorm