golang字符串拼接

四种拼接方案:app

1,直接用 += 操做符, 直接将多个字符串拼接. 最直观的方法, 不过当数据量很是大时用这种拼接访求是很是低效的。函数

2,直接用 + 操做符,这个和+=其实一个意思了。code

3,用字符串切片([]string)装载全部要拼接的字符串,最后使用strings.Join() 函数一次性将全部字符串拼接起来。在数据量很是大时,这种方法的效率也还能够的。字符串

4,利用Buffer( Buffer是一个实现了读写方法的可变大小的字节缓冲 ),将全部的字符串都写入到一个Buffer缓冲区中,最后再统一输出,这种方法最快。string

代码示例it

package maintest

import (
"bytes"
"fmt"
"strings"
"time"
)效率

func main() {
//第一种链接方法(最快)
var buffer bytes.Buffer
s := time.Now()
for i := 0; i < 100000; i++ {
buffer.WriteString("test is here\n")
}
buffer.String() // 拼接结果
e := time.Now()
fmt.Println("1 time is ", e.Sub(s).Seconds())import

//第二种方法
      s = time.Now()
      var sl []string
      for i := 0; i < 100000; i++ {
                sl = append(sl, "test is here\n")
      }
      strings.Join(sl, "")
      e = time.Now()
      fmt.Println("2 time is", e.Sub(s).Seconds())

      //第三种方法
      s = time.Now()
      str := ""
      for i := 0; i < 100000; i++ {
                str += "test is here\n"
      }
      e = time.Now()
      fmt.Println("3 time is ", e.Sub(s).Seconds())

      //第四种方法
      s = time.Now()
      str4 := ""
      for i := 0; i < 100000; i++ {
                str4 = str4 + "test is here"
      }
      e = time.Now()
      fmt.Println("4 time is ", e.Sub(s).Seconds())

}方法

相关文章
相关标签/搜索