在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中对象的类型,所以它更加一致,而且很清楚不要将其拆分。