3 回答

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
用參數(shù)的類型聲明變量dss。根據(jù)需要為變量賦值。
var dss interface{}
if command == "VMFS" {
dss = &[]mo.Datastore{}
} else {
dss = &[]mo.HostSystem{}
}
err = v.Retrieve(ctx, []string{commandChoices[command]}, []string{"name", "summary"}, dss)
if err != nil {
log.Fatal(err)
}

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
你想要的是一個(gè)空接口,就像你的方法接收到的一樣。你也可以看看這個(gè)例子https://tour.golang.org/methods/14
在您的特定情況下,您想要:
var dss interface{}
if command == "VMFS"{
dss = []mo.Datasore
}else{
dss = []mo.HostSystem
}

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
A_kat 和 Muffin 對答案進(jìn)行了一些更改。
你可以做:
if command == "VMFS" {
dss := []mo.Datasore{}
}else{
dss := []mo.HostSystem{}
}
err = v.Retrieve(ctx, []string{commandChoices[command]}, []string{"name", "summary"}, &dss)
if err != nil {
log.Fatal(err)
}
迭代范圍時(shí),這不會給您錯(cuò)誤dss
- 3 回答
- 0 關(guān)注
- 224 瀏覽
添加回答
舉報(bào)