β

golang 高效字符串拼接

It event poll 681 阅读

虽然方便,但是使用+=操作符并不是在一个循环中往字符串末尾追加字符串最有效的方式。

一个有效的方式是准备好一个字符串切片([]string),然后使用strings.Join()函数一次性将所有字符串串联起来。

但是在go中还有一个更好的方法,其原理类似于java中的stringBuilder

package main
import (
    "bytes"
    "fmt"
)
func main() {
    var buffer bytes.Buffer //Buffer是一个实现了读写方法的可变大小的字节缓冲
    for {
        if piece, ok := getNextString(); ok {
          // Write将s的内容写入缓冲中,如必要会增加缓冲容量。返回值n为len(p),err总是nil。
          // 如果缓冲变得太大,Write会采用错误值ErrTooLarge引发panic。
            buffer.WriteString(piece)
        } else {
            break
        }
    }
    fmt.Println("拼接后的结果为-->", buffer.String())
}

转自:http://studygolang.com/articles/3427

作者:It event poll
小小网站,记录你的点滴知识!
原文地址:golang 高效字符串拼接, 感谢原作者分享。

发表评论