如何在golang中通过...
解压缩可变参数:
func run(a, b string, list ...int) {
}
func call(list ...int) {
run(x, y, list...) // use "list..." is not allowed
}
func main() {
a := []int{1, 2, 3}
call(a...)
}
为什么这是非法的?如我所知,
list
参数是一个 slice ,可以由...
解压缩。
最佳答案
解压缩可变参数
例如,
package main
import "fmt"
func run(a, b string, list ...int) {
fmt.Println(list)
for i, e := range list {
fmt.Println(i, e)
}
}
func call(list ...int) {
fmt.Println(list)
var x, y string
run(x, y, list...) // use "list..." is allowed
}
func main() {
a := []int{1, 2, 3}
fmt.Println(a)
call(a...)
}
游乐场:https://play.golang.org/p/NI0L-nVVUxm
输出:
[1 2 3]
[1 2 3]
[1 2 3]
0 1
1 2
2 3
关于go - Golang解压缩可变参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59475034/