Golang相当于JavaScript的论点?

时间:2015-03-16 16:45:39

标签: go arguments

是否有golang方法来获取函数的运行时参数?

我问,因为我正在尝试编写一个带有函数和字符串的函数,然后输出字符串和运行时参数。

1 个答案:

答案 0 :(得分:3)

与可以使用声明中未包含的额外参数调用函数的JavaScript不同,对Go函数的调用必须与函数签名匹配。因此,不需要特殊的arguments全局。

话虽如此,可以编写可以采用可变数量参数的可变参数函数。例如,以下函数将接受一个字符串,后跟任意数量的整数参数:

func foo(s string, args ...int) {
    ...
}

在函数体args中将是[]int切片,因此您可以确定使用len传递了多少个参数,并像对待任何其他切片一样迭代它们。

如果要接受任何类型的参数,可以使用空白界面作为类型:

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

现在args将是[]interface{}切片。您可以使用type assertiontype switch解压缩传入的值。