我很好奇,为什么go不会隐式地把T转换为[]interface{}当它隐式地将T转换为interface{} 。 有没有什么不重要的转换,我失踪了? 例: func foo([]interface{}) { /* do something */ } func main() { var a []string = []string{"hello", "world"} foo(a) } go build抱怨 在函数参数中不能使用(type [] string)作为type [] interface {} 如果我试图明确地做,同样的事情: b := []interface{}(a)抱怨 无法将(type []string)转换为键入[] interface {} 所以每次我需要做这个转换(这似乎出现了很多),我一直在做这样的事情: b = make([]interface{}, len(a), len(a)) for i := range a { b[i] = a[i] } […]