用Go语言
[]string
是字符串数组
我们也...string
用作参数
有什么区别?
功能定义:
func f(args ...string) {}
Run Code Online (Sandbox Code Playgroud)
我可以像下面这样调用这个函数吗?
args := []string{"a", "b"}
f(args)
Run Code Online (Sandbox Code Playgroud)
I H*_*azy 116
[]string
是字符串数组
从技术上讲,它是一个引用底层数组的切片
我们也
...string
用作参数有什么区别?
关于结构,没什么.两种语法产生的数据类型是相同的.
该...
参数语法形成了可变参数的参数.它将接受零个或多个string
参数,并将它们作为切片引用.
关于调用f
,您可以使用以下语法将一片字符串传递给variadic参数:
func f(args ...string) {
fmt.Println(len(args))
}
args := []string{"a", "b"}
f(args...)
Run Code Online (Sandbox Code Playgroud)
此语法可用于使用文字语法构建的切片,或表示可变参数的切片(因为它们之间实际上没有区别).
http://play.golang.org/p/QWmzgIWpF8
tyl*_*erl 13
两者都创建了一个字符串数组,但不同之处在于它的调用方式.
func f(args ...string) {
}
// Would be called like this:
f("foo","bar","baz");
Run Code Online (Sandbox Code Playgroud)
这允许您接受可变数量的参数(所有相同的类型)
这方面的一个很好的例子就是fmt.Print
和朋友们一样,他们可以接受你想要的少量或多少的东西.
小智 5
这是您想要的:
var args []string = []string{"A", "B", "C"}
func Sample(args ...string) {
for _, arg := range args {
fmt.Println(arg)
}
}
func main() {
Sample(args...)
}
Run Code Online (Sandbox Code Playgroud)
播放:http://play.golang.org/p/N1ciDUKfG1