在 Go 语言 中,函数 的 可变参数 除了可以支持指定任意的个数,还可以支持任意的 数据类型 。
func funName(args ...interface{}){
}
我们定义了一个名为 funName 的函数,参数是 args,参数 args 的个数是不确定的,参数 args 的类型也不是确定的,因此,我们这里使用的数据类型时候 接口类型 ,即 interface。
Go 语言函数可变参数,可以传入任意个数与任意类型
package main
import (
"fmt"
)
func haiPrint(args ...interface{}){
for _, arg := range args {
switch arg.(type) {
case int:
fmt.Println(arg, "type is int")
case string:
fmt.Println(arg, "type is string")
case int64:
fmt.Println(arg, "type is int64")
case float64:
fmt.Println(arg, "type is float64")
default:
fmt.Println(arg, "type is unknown")
}
}
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//Go语言函数可变参数,可以传入任意个数与任意类型
haiPrint("Hello", "HaiCoder", 3, 100.1)
}
程序运行后,控制台输出如下:
我们定义了一个函数 haiPrint,该函数的参数是可变参数,参数的个数和参数的 类型 都是不确定的,因此我们在 main 函数调用的时候,可以传入任意个数和任意类型的参数。
在函数 haiPrint 里,我们通过 arg.(type) 的形式,获取参数的实际的类型,并通过 switch 语句的形式输出该参数的类型。
最后,我们看到,我们传入了四个参数,都输出了它们的正确的数据类型。
在 Go 语言中,函数的可变参数除了可以支持指定任意的个数,还可以支持任意的数据类型 。Go 语言函数可变参数定义语法:
func funName(args ...interface{}){
}