如何将一串字符串连接成单个字符串?


129
package main

import (
"fmt"
"strings"
)

func main() {
reg := [...]string {"a","b","c"}
fmt.Println(strings.Join(reg,","))
}

给我一个错误:

prog.go:10:不能在字符串的参数中使用reg(类型[3] string)作为类型[] string。

有没有比循环和添加到var更直接/更好的方法?


2
为什么不只是使用reg := []string {"a","b","c"}
肖恩·M

Answers:


99

您的问题标题是:

如何将一串字符串连接成单个字符串?

但实际上,reg不是切片,而是三个长度的数组。[...]string仅仅是(在这种情况下)的语法糖[3]string

要获得实际的切片,您应该编写:

reg := []string {"a","b","c"}

(尝试一下:https : //play.golang.org/p/vqU5VtDilJ。)

顺便说一句,如果您确实确实需要将字符串数组连接为单个字符串,则可以通过添加来从数组中获取一个切片[:],如下所示:

fmt.Println(strings.Join(reg[:], ","))

(尝试一下:https : //play.golang.org/p/zy8KyC8OTuJ。)


7
请在答案本身中提供工作代码,游乐场是一个加号,但不足以容纳可接受的答案;-)。TY!
shadyyx

8
@shadyyx:我同意游乐场链接是严格的补充;但我不确定您认为正确答案中缺少什么。OP的唯一错误在第10行,我提供了该行的更正版本以及说明。(您是在建议我将他/她的整个示例程序复制到答案中吗?如果是,那么-我不同意。)
ruakh

1
“尝试将切片连接到字符串中”您的解决方案仅适用于字符串的切片,而不适用于常规的切片类型。
史蒂芬·罗斯


26

这在2018年仍然有意义。

到弦

import strings
stringFiles := strings.Join(fileSlice[:], ",")

再次回到切片

import strings
fileSlice := strings.Split(stringFiles, ",")
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.