GoLang学习笔记(十四)函数的可变参数

版权声明:如需转载、粘贴内容,必须在转载和粘贴文中标明文章内容出至 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。

猜你喜欢

转载自blog.csdn.net/ynzcxx/article/details/84141313
今日推荐