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