小编典典

golang 中的 []string 和 ...string 有什么区别?

go

在 Go 语言中,

[]string 是一个字符串数组

我们也...string用作参数。

有什么不同?

函数定义:

func f(args ...string) {}

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

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

f(args)

阅读 261

收藏
2021-12-09

共1个答案

小编典典

[]string 是一个字符串数组

从技术上讲,它是一个引用底层数组的切片

我们也...string用作参数。

有什么不同?

至于结构,真的没什么。两种语法产生的数据类型是相同的。

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

关于调用f,您可以使用以下语法将一段字符串传递到可变参数参数中:

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


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

f(args...)

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

2021-12-09