在GO中輸入接口轉(zhuǎn)換片我很好奇為什么Go不隱式轉(zhuǎn)換[]T到[]interface{}當(dāng)它將隱式轉(zhuǎn)換T到interface{}..關(guān)于這個轉(zhuǎn)換有什么不平凡的地方嗎?例子:func foo([]interface{}) { /* do something */ }func main() {
var a []string = []string{"hello", "world"}
foo(a)}go build抱怨不能在函數(shù)參數(shù)中使用(類型[]字符串)作為類型[]接口{}如果我想明確地做同樣的事情:b := []interface{}(a)抱怨無法將(類型[]字符串)轉(zhuǎn)換為類型[]接口{}因此,每次我需要做這個轉(zhuǎn)換(這似乎是經(jīng)常出現(xiàn)的),我一直在做這樣的事情:b = make([]interface{}, len(a), len(a))for i := range a {
b[i] = a[i]}是否有更好的方法來實現(xiàn)這個,或者標(biāo)準(zhǔn)庫函數(shù)來幫助這些轉(zhuǎn)換?每次我想要調(diào)用一個函數(shù)時,編寫4行額外的代碼,這似乎有點愚蠢,該函數(shù)可以接收例如INT或字符串的列表。
3 回答

Qyouu
TA貢獻(xiàn)1786條經(jīng)驗 獲得超11個贊
T
interface{}
T
T
價值
interface{}
T
指向類型的指針 T
價值
[]T
[]interface{}
?
[]T
[]interface{}
interface {}
- 3 回答
- 0 關(guān)注
- 688 瀏覽
添加回答
舉報
0/150
提交
取消