发布于 2年前

Go语言高效拼接字符串

strings.Builder

Go 1.10以及以后版本使用<strong>strings.Builder</strong>,Builder在实现上有以下特点:

  1. 最大限度地减少内存复制。
  2. 零值(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())
}
©2020 edoou.com   京ICP备16001874号-3