一个函数中最多只有一个可变参数,如果参数列表中还有其他类型的参数,则可变参数写在最后。
语法格式:
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。
本文深入讲解了函数中可变参数的使用方法,包括参数数量的灵活性、参数类型的一致性及返回值的处理。通过两个示例,展示了如何在函数中处理不定数量的相同类型参数,实现求和、平均值及计数等功能。
1255

被折叠的 条评论
为什么被折叠?



