Golang 相当于 JavaScript 的参数?
Golang equivalent of JavaScript's arguments?
是否有 golang 方法来获取函数的运行时参数?
我问这个问题是因为我正在尝试编写一个接受函数和字符串的函数,然后输出字符串和运行时参数。
不同于 JavaScript 可以使用声明中未包含的额外参数调用函数,对 Go 函数的调用必须与函数签名匹配。所以不需要特殊的 arguments
global.
话虽如此,可以编写带有可变数量参数的可变参数函数。例如,以下函数将接受后跟任意数量的整数参数的字符串:
func foo(s string, args ...int) {
...
}
在函数体中 args
将是一个 []int
切片,因此您可以确定使用 len
传递了多少参数,并像使用任何其他参数一样遍历它们切片。
如果你想接受任何类型的参数,你可以使用空白接口作为类型:
func bar(args ...interface{}) {
...
}
现在 args
将是一个 []interface{}
切片。您可以使用 type assertion or type switch.
解压传入的值
是否有 golang 方法来获取函数的运行时参数?
我问这个问题是因为我正在尝试编写一个接受函数和字符串的函数,然后输出字符串和运行时参数。
不同于 JavaScript 可以使用声明中未包含的额外参数调用函数,对 Go 函数的调用必须与函数签名匹配。所以不需要特殊的 arguments
global.
话虽如此,可以编写带有可变数量参数的可变参数函数。例如,以下函数将接受后跟任意数量的整数参数的字符串:
func foo(s string, args ...int) {
...
}
在函数体中 args
将是一个 []int
切片,因此您可以确定使用 len
传递了多少参数,并像使用任何其他参数一样遍历它们切片。
如果你想接受任何类型的参数,你可以使用空白接口作为类型:
func bar(args ...interface{}) {
...
}
现在 args
将是一个 []interface{}
切片。您可以使用 type assertion or type switch.