变参函数是指可以接受可变数量的参数的函数。
语法
如果一个函数的最后一个参数由 ...T
表示,则表示该函数可以接受任意数量的类型为 T
的参数。...T
在内部表示类型为 []T
切片。
请注意:只有函数的最后一个参数才能指定为可变参数。
如果没有给可变参数传递任何值,则可变参数为 nil 切片,长度和容量都是0。
传递切片给可变参数
package main
import (
"fmt"
)
func find(num int, nums ...int) {
fmt.Printf("type of nums is %T\n", nums)
found := false
for i, v := range nums {
if v == num {
fmt.Println(num, "found at index", i, "in", nums)
found = true
}
}
if !found {
fmt.Println(num, "not found in ", nums)
}
fmt.Printf("\n")
}
func main() {
nums := []int{89, 90, 95}
find(89, nums...)
}
这里有一个语法糖用来将切片传递给变参函数:可以在切片后面加 ...
,这样会将切片展开为其中的各个元素并将它们传递给变参函数。
网友评论