我来自 python 背景和 Golang 的新手。我开始用 Golang 写一些代码,遇到了一个基于 if 条件设置数据类型的问题。在使用 Govmomi 模块时,我遇到了一个接受最后一个参数作为接口的Retrieve方法。
在我的脚本中,我正在检查如下参数
var hss []mo.HostSystem
var ds []mo.Datastore
if command == "VMFS" {
err = v.Retrieve(ctx, []string{commandChoices[command]}, []string{"name", "summary"}, &ds)
if err != nil {
log.Fatal(err)
}
for _, host := range ds {
fmt.Println(host.Name)
}
} else {
err = v.Retrieve(ctx, []string{commandChoices[command]}, []string{"name", "summary"}, &hss)
if err != nil {
log.Fatal(err)
}
for _, host := range hss {
fmt.Println(host.Name)
}
更多此代码是我想避免但不确定如何根据 if 条件设置数据类型的样板代码。我正在寻找类似的东西
if command == "VMFS" {
dss = []mo.Datasore
} else {
dss = []mo.HostSystem
}
然后将 dss 作为最后一个参数传递给Retrieve方法。非常感谢任何帮助。
繁花如伊
富国沪深
炎炎设计
相关分类