这是我的第一个golang程序,而不仅仅是阅读文档,所以请耐心等待。
我有一个类似的结构:-(来自解析的 yaml)
type GLBConfig struct {
GLBList []struct {
Failover string `json:"failover" yaml:"failover"`
GLB string `json:"glb" yaml:"glb"`
Pool []struct {
Fqdn string `json:"fqdn" yaml:"fqdn"`
PercentConsidered int `json:"percent_considered" yaml:"percent_considered"`
} `json:"pool" yaml:"pool"`
} `json:"glb_list" yaml:"glb_list"`
}
现在,在我的主函数中,有一个 for 循环来处理每个 GLB:-
for _, glb := range config_file.GLBList {
processGLB(glb)
}
processGLB接收这种类型的函数定义是什么?
我试过这样做,但它不起作用,我想知道为什么。
func processGLB(glb struct{}) {
fmt.Println(glb)
}
./glb_workers.go:42: cannot use glb (type struct { Failover string "json:\"failover\" yaml:\"failover\""; Glb string "json:\"glb\" yaml:\"glb\""; Pool []struct { Fqdn string "json:\"fqdn\" yaml:\"fqdn\""; PercentConsidered int "json:\"percent_considered\" yaml:\"percent_considered\"" } "json:\"pool\" yaml:\"pool\"" }) as type struct {} in argument to processGLB
然后,稍后进行一些谷歌搜索,这是有效的。
func processGLB(glb interface{}) {
fmt.Println(glb)
}
这样做是个好主意吗?为什么我必须使用接口来传递一个简单的结构命名字段?
最后,在 golang 中最优雅/最正确的方法是什么?
繁星coding
缥缈止盈
相关分类