3 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
我認(rèn)為這就是您在這里遇到的問(wèn)題。
https://github.com/golang/go/wiki/InterfaceSlice
我不是這方面的專(zhuān)家,但之前已經(jīng)遇到過(guò)這個(gè)問(wèn)題,“空接口切片”不是一個(gè)接口,因此不能被任何類(lèi)型替換,這是您遇到的問(wèn)題,它與內(nèi)存結(jié)構(gòu)有關(guān)不同的。上面的解釋比我能給出的解釋要好得多。

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
您可以對(duì)鍵入的切片進(jìn)行類(lèi)型轉(zhuǎn)換以獲得所需的內(nèi)容:
generic := make([]interface{}, 0)
for _, f := range foos {
generic = append(generic, f)
}
test(generic...) // works

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
將兩個(gè)非否定答案結(jié)合成我認(rèn)為最好的解決方案:
interfaceSlice := make([]interface{}, len(foos))
for i, v := range foos {
interfaceSlice[i] = v
}
test(interfaceSlice...)
部分靈感來(lái)自:
https://github.com/golang/go/wiki/InterfaceSlice#what-can-i-do-instead
- 3 回答
- 0 關(guān)注
- 157 瀏覽
添加回答
舉報(bào)