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())

}方法

相關文章
相關標籤/搜索