当前位置: 首页 > 知识库问答 >
问题:

[]字符串和。。。在戈朗串?

尚景焕
2023-03-14

用围棋的语言,

[]字符串是一个字符串数组

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

有什么区别?

功能定义:

func f(args ...string) {}

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

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

f(args)

共有3个答案

唐麒
2023-03-14

以下是您想要的:

var args []string = []string{"A", "B", "C"}

func Sample(args ...string) {
    for _, arg := range args {
        fmt.Println(arg)
    }
}

func main() {
    Sample(args...)
}

玩法:http://play.golang.org/p/N1ciDUKfG1

贺功
2023-03-14

两者都创建字符串数组,但不同之处在于如何调用。

func f(args ...string) {

}
// Would be called like this:

f("foo","bar","baz");

这允许您接受数量可变的参数(所有参数都是相同类型的)

一个很好的例子是fmt。打印和朋友,他们可以根据您的需要接受尽可能少或多的邮件。

皇甫伟彦
2023-03-14

[]字符串是一个字符串数组

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

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

有什么区别?

就结构而言,什么都不是。两种语法产生的数据类型相同。

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

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

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


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

f(args...)

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

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

 类似资料:
  • 有什么方法可以重写panic功能来使用我们的记录器吗?

  • 问题内容: 我正在将算法从C移植到Go。我有些困惑。这是C函数: 在for循环中,将值s分配给元素cd数组x。这怎么可能?据我所知,长双精度数是float64(在Go上下文中)。因此,我不应该编译C代码,因为我正在向只包含uint64元素的数组分配一个long double。但是C代码可以正常工作。 那么有人可以解释为什么这行得通吗? 非常感谢你。 更新: 该函数的原始C代码可以在以下位置找到:h

  • 字符串是一系列的字符,比如说 "hello, world"或者 "albatross"。Swift 的字符串用String类型来表示。String的内容可以通过各种方法来访问到,包括作为Character值的集合。 Swift 的 String  和 Character  类型提供了一种快速的符合 Unicode 的方式操作你的代码。字符串的创建和修改语法非常轻量易读,使用与 C 类似的字符串字面

  • 本页包含内容: 字符串字面量 初始化空字符串 字符串可变性 字符串是值类型 使用字符 计算字符数量 连接字符串和字符 字符串插值 比较字符串 字符串大小写 Unicode String是例如"hello, world","海贼王"这样的有序的Character(字符)类型的值的集合,通过String类型来表示。 Swift 的String和Character类型提供了一个快速的,兼容 Unicod

  • 问题内容: 以下语句, 产生输出。 但是,以下内容 产生。 区别在哪里? 问题答案: 您会因为操作符优先级和字符串转换的结合而看到此行为。 JLS 15.18.1 指出: 如果只有一个操作数表达式的类型为String,则对另一操作数执行字符串转换(第5.1.11节),以在运行时生成字符串。 因此,第一个表达式中的右侧操作数将隐式转换为字符串: 但是对于第二个表达式,必须将复合赋值运算符与一起考虑。