package main

import "fmt"

// 一个函数中最多只可有一个可变参数, 如果参数列表中还有其它类型的参数,则可变参数写在最后
// 注意:参数不定,参数的个数是0-N个,也就是说可变参数可以为空
func sumNumber(num1 float64, nums ...float64) (sum, avg float64, count int) {
	for _, v := range nums {
		sum += v
		count += 1
	}
	sum += num1
	count += 1
	avg = sum / float64(count)
	return
}

func main() {
	sum, avg, count := sumNumber(11, 22, 44)
	fmt.Println(sum, avg, count)

	// 可变参数还可以直接传递一个切片进去作为参数,传递切片参数的时候后面加三个点...
	slice1 := []float64{11, 22, 55}
	sum, avg, count = sumNumber(55, slice1...)
	fmt.Println(sum, avg, count)

}