当前位置: 首页 > 面试题库 >

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

邢博文
2023-03-14
问题内容

在Go语言中,

[]string 是一个字符串数组

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

有什么区别?

功能定义

func f(args ...string) {}

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

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

f(args)

问题答案:

[]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



 类似资料:
  • 问题内容: 这两个语句之间有什么区别: 和 如果您能说明差异,那就太好了。 问题答案: 第一个是创建一个新的String对象。第二个是有效地使用已经存在的(它是在加载类文件时创建的)。实际上,从来没有理由使用构造函数。 (我之所以这样说, 实际上是 因为有一种情况:如果要通过调用然后丢弃原始文件来分解大块,则可以使用此构造函数从子字符串中创建new来节省内存。这确实是一个晦涩的情况,虽然。)

  • 问题内容: 我应该如何用Java 声明方法? 像这样: 或像这样: 和如果有的话,实际上有什么区别? 问题答案: 我应该如何在Java中声明main()方法? 和在内部同样的事情,即,字符串的数组。区别在于,当您使用varargs参数()时,可以像下面这样调用方法: 并且当您将参数声明为String数组时, 必须以 这种方式调用: 和…(如果有)之间到底有什么区别? 约定是用作主要的方法参数,但也

  • 我应该如何在Java中声明方法? 这样地: 或者像这样: 字符串[]和字符串之间的区别是什么 如果有?

  • 我想将字符串转换为双精度数据类型。我不知道应该使用parseDouble还是valueOf。 这两种方法有什么区别?

  • 问题内容: 之间有什么区别: 和 我不相信,但是我想知道。 问题答案: 从语义上讲,它们是相同的。但是,我建议在声明数组时使用后一种语法()。以前的语法主要用于与C语法兼容。 因为总体上来说,它是Java中对象的类型,所以它更加一致,而且很清楚不要将其拆分。