我是Go的新手。 找不到任何官方文档显示如何将多个字符串合并为一个新字符串。
我所期望的是:
输入值: "key:"
, "value"
, ", key2:"
, 100
输出值: "Key:value, key2:100"
如果可能的话,我想使用+来合并字符串,就像在Java和Swift中一样。
I like to use fmt's Sprintf
method for this type of thing. It works like normal Printf
in Go or C only it returns a string. Here's an example;
output := fmt.Sprintf("%s%s%s%d", "key:", "value", ", key2:", 100)
Go docs for fmt.Sprintf
You can use strings.Join, which is almost 3x faster than fmt.Sprintf. However it can be less readable.
output := strings.Join([]string{"key:", "value", ", key2:", strconv.Itoa(100)}, "")
See https://play.golang.org/p/AqiLz3oRVq
strings.Join vs fmt.Sprintf
BenchmarkFmt-4 2000000 685 ns/op
BenchmarkJoins-4 5000000 244 ns/op
Buffer
If you need to merge a lot of strings, I'd consider using a buffer rather than those solutions mentioned above.