6.3 传递变长参数
...小于 1 分钟
6.3 传递变长参数
若函数最后一个参数为...type 的形式,那么函数可以处理变长参数,长度可以为0,这样的函数被称为变参函数。
相同参数类型
当变长参数类型相同时,可以:
- 直接传入多个参数:
f(p1, p2, p3) - 参数放在切片中,以
slice...的形式传入 
例:TODO: 06_3_varnumpar.go
func varnumpar() {
	x := min(1, 2, 3, 0)
	fmt.Println(x) // 0
	s := []int{5, 3, 4, 1}
	x = min(s...)
	fmt.Println(x) // 1
}
func min(s ...int) int {
	if len(s) == 0 {
		return 0
	}
	min := s[0]
	for _, v := range s {
		if v < min {
			min = v
		}
	}
	return min
}
不同参数类型
两种方式:
使用
struct:type Options struct { param1 type1, param2 type2, ... }使用空接口 若边长参数类型没有指定,可以使用空接口
interface{}来接收任意类型的参数。 然后在函数内部通过switch对每个参数进行判断func typecheck(..,..,values … interface{}) { for _, value := range values { switch v := value.(type) { case int: … case float: … case string: … case bool: … default: … } } }
 Powered by  Waline  v2.15.2
