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

标签 string go

在 Go 语言中,

[]string 是一个字符串数组

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

有什么区别?

函数定义:

func f(args ...string) {}

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

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

f(args)

最佳答案

[]string is a string array

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

and we also use ...string as a parameter.

What is the difference?

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

... 参数语法构成可变参数。它将接受零个或多个 string 参数,并将它们作为 slice 引用。

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

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


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

f(args...)

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

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

关于string - golang 中的 []string 和 ...string 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12907653/

相关文章:

ios - 在 Swift 中将 UInt32 (UTF-32) 转换为字符串

c++ - 字符串与哈希作为映射键 - 性能

macos - 为什么 Go 在 Mac(os 包)上提供了不正确的 ENV Go

mongodb - 使用MongoDB解码将字符串从MongoDB转换为int

go - 用 Go 做一个简单的 FileServer 和 Localhost 拒绝连接

c++ - const string a = "tmp"vs const string& a = "tmp"

c++ - 如何在没有正则表达式的情况下在 C++ 中实现高效的全字字符串替换?

php - 如何获取正则表达式匹配在字符串中的位置?

amazon-web-services - 在AWS Lambda上运行Golang exec

struct - 嵌入式结构方法可以了解父/子吗?