Variadic Variable Expansion in fmt.Println
本问题已经有最佳答案,请猛点这里访问。
1 2 3 4 5 6 | package main import"fmt" func main(){ a := []int{1,2,3} fmt.Println(a...) } |
运行此命令会出现以下错误
来自
1 | func Println(a ...interface{}) (n int, err error) |
号
令我困惑的是
但一个有效,另一个无效。
我这里缺什么?
1 | fmt.Println([]interface{}{a[0], a[1], a[2]}...) |
相当于
1 2 3 4 5 | fmt.Println([]interface{}{ interface{}(a[0]), interface{}(a[1]), interface{}(a[2]), }...) |
号
因此,当您传递
如果要将EDOCX1的元素(13)传递给期望
1 2 3 4 5 | b := make([]interface{}, len(a)) for i, v := range a { b[i] = v } fmt.Println(b...) |
在游乐场上试试这些例子。
另请参见相关问题:解包切片