如何将Slice加入String?

cyc*_*ion 98 go slice

package main

import (
"fmt"
"strings"
)

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

给我一个错误:

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

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

Den*_*ret 101

使用切片,而不是arrray.只需使用它创建它

reg := []string {"a","b","c"}
Run Code Online (Sandbox Code Playgroud)

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

fmt.Println(strings.Join(reg[:],","))
Run Code Online (Sandbox Code Playgroud)

阅读Go博客,了解切片和数组之间的差异.


rua*_*akh 52

你问题的标题是:

golang,试图将切片连接成一个字符串

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

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

reg := []string {"a","b","c"}
Run Code Online (Sandbox Code Playgroud)

(试试看:http://play.golang.org/p/vqU5VtDilJ.)

  • @shadyyx:我同意游乐场的链接是严格补充的; 但是我不确定你认为答案中缺少什么.OP的唯一错误是在第10行,我提供了该行的更正版本以及解释.(你是否建议我将他/她的整个示例程序复制到答案中?如果是,那么 - 我不同意.) (8认同)
  • 请在答案中提供工作代码,操场是一个加号,但不足以获得可接受的答案;-).TY! (7认同)

Edw*_*ner 24

这仍然与2018年有关.

字符串

import strings
stringFiles := strings.Join(fileSlice[:], ",")
Run Code Online (Sandbox Code Playgroud)

再次回到切片

import strings
fileSlice := strings.Split(stringFiles, ",")
Run Code Online (Sandbox Code Playgroud)

  • 导入“字符串” (2认同)