基本上我有 []int{1, 2, 3}
,我想要一个将其转换为字符串 “1, 2, 3” 的单行代码(我需要自定义分隔符,有时 .
,有时 ,
等)。以下是我能想到的最好的。在网上搜索了一下,似乎没有找到更好的答案。
在大多数语言中都有对此的内置支持,例如:
Python:
> A = [1, 2, 3]
> ", ".join([str(a) for a in A])
'1, 2, 3'
去:
package main
import (
"bytes"
"fmt"
"strconv"
)
// Could not find a one-liner that does this :(.
func arrayToString(A []int, delim string) string {
var buffer bytes.Buffer
for i := 0; i < len(A); i++ {
buffer.WriteString(strconv.Itoa(A[i]))
if i != len(A)-1 {
buffer.WriteString(delim)
}
}
return buffer.String()
}
func main() {
A := []int{1, 2, 3}
fmt.Println(arrayToString(A, ", "))
}
go 中肯定有一个实用程序可以让我用单行代码来完成这项工作吗?
我知道有 strings.Join(A, ", ")
,但这只有在 A 已经是 []string 时才有效。
原文由 N0thing 发布,翻译遵循 CC BY-SA 4.0 许可协议
转换
A := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
到一行分隔的字符串,如
“1,2,3,4,5,6,7,8,9”
利用:
或者:
或者:
并从这个例子中的函数返回它:
要在逗号后包含一个空格,您可以调用
arrayToString(A, ", ")
或相反将返回定义为return strings.Trim(strings.Replace(fmt.Sprint(a), " ", delim + " ", -1), "[]")
以强制将其插入到分隔符之后。