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

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