```go
package main
import "fmt"
func main() {
var p = []int{1, 2, 3, 4, 10, 8}
fucnBian(1, p)
for i, v := range p {
fmt.Printf("第%d,是%d\n", i, v)
}
}
func fucnBian(m int, s ...[]int) {
for i, v := range s {
m = 1
fmt.Printf("第%d,是%d\n", i, v)
}
}
```
###输出结果如下:
###//写成函数后输出的值
###第0,是[1 2 3 4 10 8]
###//for range循环输出的值
###第0,是1
###第1,是2
###第2,是3
###第3,是4
###第4,是10
###第5,是8
![for_range.png](https://static.studygolang.com/200723/0df4d7f8fbb5d7a81c942aab4896643f.png)
package main
import "fmt"
func main() {
var p = []int{1, 2, 3, 4, 10, 8}
fucnBian(1, p...)
for i, v := range p {
fmt.Printf("第%d,是%d\n", i, v)
}
}
func fucnBian(m int, s ...int) {
for i, v := range s {
m = 1
fmt.Printf("第%d,是%d\n", i, v)
}
}
#2
更多评论
因为你的`fucn(m int, s...int)`接受的是`s...int`,当你传入一个slice的时候,那个`...`会把他展开成一个二维slice `[][]int`,你的例子就是{{1,2,3,4,10,8}},所以range循环的第一次就会得到所有的值然后打印
#3