版权声明:如需转载、粘贴内容,必须在转载和粘贴文中标明文章内容出至 https://blog.csdn.net/ynzcxx/article/details/84141313
一个函数中最多只有一个可变参数,如果参数列表中还有其他类型的参数,则可变参数写在最后。
语法格式:
func 函数名(参数名 ...类型)[(返回值列表)]{
//函数体
}
示例一,参数不定,参数的个数是0-N个,参数类型一致,返回值1个。
注意:参数是0到N个,也就是说,可以为空。
func sum(nums ...int) (sum int) {
for _, val := range nums {
sum += val
}
return
}
遍历所有参数,并将所有参数相加并返回总和。
示例二,参数不定,参数的个数是0到N个,参数类型一致,返回多个值。
func getScore(nums ...float64) (sum, avg float64, count int) {
for _, val := range nums {
sum += val
count++
}
avg = sum / float64(count)
return
}
这个示例,将返回三个值,总和、平均值、总个数,如果要取值则必须有三个变量去接收,如下所示:
sum, avg, count := getScore(99, 98, 76, 44, 88, 33, 97.5, 93, 21)
fmt.Printf("一共有%d个学生成绩,总成绩为%.2f,平均成绩为%.2f", count, sum, avg)
另外,可变参数还可以直接传一个切片进去作为参数,在切片变量参数后需加上"...",以第一个例子作为示例,如下:
arr := []int{1,2,3,4,5,6,7,8,9}
fmt.Println(sum(arr...))
运行后获得结果45。