ChatGPT解决这个技术问题 Extra ChatGPT

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

package main

import (
"fmt"
"strings"
)

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

给我一个错误:

prog.go:10: 不能使用 reg (type [3]string) 作为 string.Join 的参数中的 type []string

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

为什么不直接使用 reg := []string {"a","b","c"}

r
ruakh

你的问题的标题是:

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

但实际上,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。)


请在答案本身中提供工作代码,游乐场是一个加号,但不足以接受可接受的答案;-)。泰!
@shadyyx:我同意游乐场链接是严格补充的;但我不确定您认为正确答案中缺少什么。 OP 的唯一错误在第 10 行,我提供了该行的更正版本以及解释。 (您是否建议我应该将他/她的整个示例程序复制到答案中?如果是这样,那么 - 我不同意。)
“尝试将切片加入字符串”您的解决方案仅适用于字符串切片,而不适用于一般切片类型。
D
Denys Séguret

使用切片,而不是数组。只需使用创建它

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

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

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

阅读the Go blog about the differences between slices and arrays


E
Edwinner

这在 2018 年仍然适用。

到字符串

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

再次回到切片

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

导入“字符串”

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅