Golang 如何使用省略号(…)
在Golang中,三个点( … )被称为Ellipsis,用于可变参数函数。被调用时参数数量可变的函数称为可变参数函数。换句话说,用户可以在可变参数函数中传递零个或多个参数。fmt.Printf是可变参数函数的一个例子,它在开始时需要一个固定参数,之后可以接受任意数量的参数。
可变参数函数的最后一个参数始终使用Ellipsis。这意味着它可以接受任意数量的参数。
示例1:
//演示如何在 Golang 中使用省略号(…)
package main
import "fmt"
func main() {
sayHello()
sayHello("Rahul")
sayHello("Mohit", "Rahul", "Rohit", "Johny")
}
//使用省略号
func sayHello(names ...string) {
for _, n := range names {
fmt.Printf("你好 %s\n", n)
}
}
输出:
你好 Rahul
你好 Mohit
你好 Rahul
你好 Rohit
你好 Johny
示例2:
//演示如何在 Golang 中使用省略号(…)
package main
import (
"fmt"
)
//使用可变参数函数
func find(num int, nums ...int) {
fmt.Printf("nums的类型是% T\n", nums)
found := false
for i, v := range nums {
if v == num {
fmt.Println(num, "在", nums, "的索引为", i, "找到")
found = true
}
}
if !found {
fmt.Println(num, "没有在", nums, "中找到")
}
fmt.Printf("\n")
}
func main() {
// 调用具有可变数量参数的函数
find(89, 89, 90, 95)
find(45, 56, 67, 45, 90, 109)
find(78, 38, 56, 98)
find(87)
}
输出:
nums的类型是 []int
89在 [89 90 95] 的索引为 0 找到
nums的类型是 []int
45在 [56 67 45 90 109] 的索引为 2 找到
nums的类型是 []int
78没有在 [38 56 98] 中找到
nums的类型是 []int
87没有在 [] 中找到