Golang 传递变长参数
warning:
这篇文章距离上次修改已过419天,其中的内容可能已经有所变动。
在 Go 语言中,函数可以接收可变数量的参数。这通过在参数列表中使用 ...T 语法实现,其中 T 是类型名。
以下是一些示例:
- 传递不定数量的
int参数:
package main
import (
"fmt"
)
func sum(nums ...int) {
fmt.Print(nums, " ")
total := 0
for _, num := range nums {
total += num
}
fmt.Println(total)
}
func main() {
sum(1, 2)
sum(1, 2, 3)
}在上述代码中,sum 函数接收一个 int 类型的可变参数。当我们调用 sum 函数时,我们可以传递任意数量的 int 参数。
- 传递不定数量的
string参数:
package main
import (
"fmt"
)
func join(s ...string) {
fmt.Print(s, " ")
result := ""
for _, str := range s {
result += str
}
fmt.Println(result)
}
func main() {
join("Hello", ", ", "World")
join("Hello", "World")
}在上述代码中,join 函数接收一个 string 类型的可变参数。当我们调用 join 函数时,我们可以传递任意数量的 string 参数。
- 传递不定数量的任何类型的参数:
package main
import (
"fmt"
)
func printAll(args ...interface{}) {
fmt.Print(args, " ")
for _, arg := range args {
fmt.Print(arg, " ")
}
fmt.Println()
}
func main() {
printAll(1, "Hello", true)
printAll("Hello", true, 1)
}在上述代码中,printAll 函数接收一个 interface{} 类型的可变参数。interface{} 类型是一个特殊的类型,可以用来表示任何类型的值。当我们调用 printAll 函数时,我们可以传递任意数量的任何类型的参数。
注意:在 Go 语言中,函数只能有一个可变参数,并且它必须是函数签名的最后一个参数。
评论已关闭