如下代码
package main
import "fmt"
//
func add(a, b int) {
//不能解决一个问题,我可能有不定个int值传递进来
}
func adddian(params ...int) (sum int) {
for _, v := range params {
sum += v
}
return
}
func addslice(params []int) (sum int) {
for _, v := range params {
sum += v
}
return
}
//省略号
func main() {
//通过省略号动态设置多个参数值
fmt.Println(adddian(1, 2))
fmt.Println(adddian(1, 2, 3))
fmt.Println(adddian(1, 2, 3, 4, 5))
//这种效果slice
slice := []int{1, 2, 3, 4, 5}
fmt.Println(addslice(slice))
//区别,slice是一种类型,还是引用传递,传递的时候要慎重,下面这种用法是将slice打散
fmt.Println(adddian(slice...))
//省略号的用途,1.函数参数不定长,2.将slice打算 3.不定长数组
arr := [...]int{1, 2, 3}
fmt.Printf("%T\n", arr)
}