package main

import (
"fmt"
"strings"
)

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

给出的误差为:

掠夺。Go:10:不能使用reg(类型[3]字符串)作为类型[]字符串的参数。加入

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


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

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

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

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

请阅读Go博客中关于片和数组之间区别的内容。


你问题的题目是:

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

但事实上,reg不是一个切片,而是一个长度为3的数组。[…字符串只是(在本例中)[3]字符串的语法糖。

要得到真正的切片,你应该这样写:

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, ",")