13.9.1 传递参数到 …​ 参数

函数 f 的最后一个参数可以指定为 p …​T,其中 p 为参数名称,T 为类型。在这种情况下,在函数 f 的主体内,p 的类型等价于 []T 类型。

首先,如果调用函数 f 时没有为 p 实际传入参数,则传递给 p 的值为 nil。

否则,传递的值是一个新的 []T 类型的切片,其中包含一个新的底层数组,其元素为连续的参数。因此,在特定调用中,切片的长度和容量就是绑定到 p 的调用中的参数数量。

例子:

func SendMoney(amount float32, names ...string)

在调用 SendMoney(100.0) 和 SendMoney(100.0, "Joe", "Jill") 中,名称的值分别为 nil 和 []string{"Joe", "Jill"}。

最后更新于