一尘不染

golang中[] string和…string之间有什么区别?

go

在Go语言中,

[]string 是一个字符串数组

并且我们也将其...string用作参数。

有什么区别?

功能定义:

func f(args ...string) {}

我可以像下面这样调用此函数吗?

args := []string{"a", "b"}

f(args)

阅读 403

收藏
2020-07-02

共1个答案

一尘不染

[]string 是一个字符串数组

从技术上讲,这是引用基础数组的切片

并且我们也将其...string用作参数。

有什么区别?

关于结构,真的没有。两种语法得出的数据类型相同。

...参数语法形成了可变参数的参数。它将接受零个或多个string参数,并将它们作为切片引用。

关于调用f,您可以使用以下语法将字符串的一部分传递给variadic参数:

func f(args ...string) {
    fmt.Println(len(args))
}


args := []string{"a", "b"}

f(args...)

此语法可用于使用文字语法构建的切片,或表示可变参数的切片 (因为它们之间实际上没有区别)

http://play.golang.org/p/QWmzgIWpF8

2020-07-02