详细的用法请参考《Go语言编程》(许式伟等编著,北京:人民邮电出版社,2012.08)第2.5.3小节“不定参数”。
这里说一下我使用的经验:
可以把不定参数理解为一个数组,你可以自己组织一个数组或切片,然后将其作为不定参数传给一个可以接受不定参数的函数。
假设有另一个变参函数叫做myfunc3(args ...int),下面演示如何自己组织一个不定参数:
func myfunc(arg1 int,arg2 int, args ...int) {
argsNew :=make([]int,2+len(args)
argsNew[0]=arg1
argsNew[1]=arg2
for i:=0;i<len(args);i++ {
argsNew[i+2]=args[i]
}
myfunc3(argsNew...)//注意,一定要加上“...”,这样才能说明传送的是不定参数而不是一个数组
}
参考文章:
《看范例学 Golang (十四)- 可变参数函数》:http://ieqi.net/2013/03/11/%E7%9C%8B%E8%8C%83%E4%BE%8B%E5%AD%A6-golang-%EF%BC%88%E5%8D%81%E5%9B%9B%EF%BC%89-%E5%8F%AF%E5%8F%98%E5%8F%82%E6%95%B0%E5%87%BD%E6%95%B0/