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

package main


import (
"fmt"
"strings"
)


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

给了我一个错误:

Go: 10: 不能使用 reg (type [3] string)作为字符串参数中的[] string 类型

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

246898 次浏览

使用切片,而不是数组。只需要使用

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

另一种方法是在加入时将数组转换为切片:

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

关于切片和数组之间区别的Go博客

你问题的题目是:

如何加入一个字符串片成一个单一的字符串?

但实际上,reg一个切片,而是一个长度为3的数组。[...]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。)

这在2018年仍然有意义。

字符串

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

回到切片

import strings
fileSlice := strings.Split(stringFiles, ",")