...interface{} 传参为什么不能使用...语法

1. 运行环境#

2. 问题描述?#

var  a = []int{1, 2, 3, 4, 5}
fmt.Print(a...)

报错 cannot use a (variable of type []int) as []any value in argument to fmt.Print

如果把int 改成 interface{} 就可以 但是 interface{} 不是所有类型都可以接收吗

func  a(b ...int) {} a([]int{1, 2, 3}...) 这里指定int类型就可以 如果改成声明any就不行

3. 您期望得到的结果?#

4. 您实际得到的结果?#

讨论数量: 3
goStruct

建议看下基础语法。fmt.Print 已经包含了可变的参数,所以你传... 相当于无效,就触发了 panic。

2年前 评论
mangocrab (楼主) 2年前
goStruct (作者) 2年前