Go语言高效拼接字符串
strings.Builder
Go 1.10以及以后版本使用<strong>strings.Builder</strong>
,Builder在实现上有以下特点:
- 最大限度地减少内存复制。
- 零值(zero-value)可以直接使用,不需要初始化。
示例:
package main
import (
"strings"
"fmt"
)
func main() {
// 此处是zero value,不需要做初始化就可以使用。
var sb strings.Builder
for i := 0; i < 1000; i++ {
sb.WriteString("a")
}
fmt.Println(sb.String())
}
bytes.Buffer
Go 1.10之前的版本使用bytes.Buffer,使用示例:
package main
import (
"bytes"
"fmt"
)
func main() {
var buffer bytes.Buffer
for i := 0; i < 1000; i++ {
buffer.WriteString("a")
}
fmt.Println(buffer.String())
}