I'm curious why Go does't implicitly convert []T to []interface{} when it will implicitly convert T to interface{}. Is there something non-trivial about this conversion that I'm missing? Example: func foo([]interface{}) { /* do something */ } func main() { var a []string = []string{"hello", "world"} foo(a) } go build complains cannot use a (type []string) as type []interface {} in function argumen