Go语言函数可变参数

Go语言函数可变参数教程

Go 语言 中,函数可变参数 除了可以支持指定任意的个数,还可以支持任意的 数据类型

Go语言函数可变参数详解

定义

func funName(args ...interface{}){ }

说明

我们定义了一个名为 funName 的函数,参数是 args,参数 args 的个数是不确定的,参数 args 的类型也不是确定的,因此,我们这里使用的数据类型时候 接口类型 ,即 interface。

案例

Go语言任意类型的函数可变参数

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) }

程序运行后,控制台输出如下:

15_golang函数可变参数.png

我们定义了一个函数 haiPrint,该函数的参数是可变参数,参数的个数和参数的 类型 都是不确定的,因此我们在 main 函数调用的时候,可以传入任意个数和任意类型的参数。

在函数 haiPrint 里,我们通过 arg.(type) 的形式,获取参数的实际的类型,并通过 switch 语句的形式输出该参数的类型。

最后,我们看到,我们传入了四个参数,都输出了它们的正确的数据类型。

Go语言函数参数可变参数总结

在 Go 语言中,函数的可变参数除了可以支持指定任意的个数,还可以支持任意的数据类型 。Go 语言函数可变参数定义语法:

func funName(args ...interface{}){ }