函数中的可变参数
可变参数的函数格式
函数声明时可以没有固定数量的参数。
func 函数名 (固定参数列表,v ...T ) (返回参数列表) {
函数体
}
或者
func 函数名 (固定参数列表, slice ... 类型)(返回值类型){
函数流程
}
- 可变参数一般放在函数参数列表的末尾,也可不存在固定参数列表。
- “v …T”代表的其实就是变量v为T类型的切片,v和T之间为三个“.”。
举例:
package main
import "fmt"
func myfunc(x int, y int, slice ...int) (sum int, sub int, slice_sum int) {
sum = x + y
sub = x - y
for _, value := range slice {
slice_sum = slice_sum + value
}
return sum, sub, slice_sum
}
func main() {
x, y := 6, 2
f1 := myfunc
sum, sub, slice_sum := f1(x, y, 1, 2, 3, 4)
fmt.Println(sum)
fmt.Println(sub)
fmt.Println(slice_sum)
}
// 8
// 4
// 10
说明一下:在本案例中,
- x, y 为固定的参数,是必须要对其进行赋值,且固定参数为2个;
- sum, sub 是固定参数经过运算后得到的结果
- slice_sum 是可变参数 … 经过运算得到的值,可变参数的个数是不固定的。