...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。

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

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!