1.直接使用运算符
加就完了,但是字符串属于不可变类型,复杂场景不要用,会导致频繁垃圾回收
2.bytes.Buffer
这种方法用于需要大量进行字符串拼接操作的场合,性能要大大优于第一种方法。
// bytes.Buffer的0值可以直接使用
var buff bytes.Buffer
// 向buff中写入字符/字符串
buff.Write([]byte("Hello"))
buff.WriteByte(' ')
buff.WriteString("World")
// String() 方法获得拼接的字符串
buff.String() // "Hello World"
3.buffer.Builder 官推
上一种的改进
//需要先导入Strings包
s1 := "字符串"
s2 := "拼接"
var build strings.Builder
build.WriteString(s1)
build.WriteString(s2)
s3 := build.String()
4.其他(麻烦死了,别用)
fmt.Sprintf()
func BenchmarkAddStringWithSprintf(b *testing.B) {
hello := "hello"
world := "world"
for i := 0; i < b.N; i++ {
_ = fmt.Sprintf("%s,%s", hello, world)
}
}
strings.Join()
func BenchmarkAddStringWithJoin(b *testing.B) {
hello := "hello"
world := "world"
for i := 0; i < b.N; i++ {
_ = strings.Join([]string{hello, world}, ",")
}
}