golang字符串拼接


四種拼接方案:

1,直接用 += 操作符, 直接將多個字符串拼接. 最直觀的方法, 不過當數據量非常大時用這種拼接訪求是非常低效的。

2,直接用 + 操作符,這個和+=其實一個意思了。

3,用字符串切片([]string)裝載所有要拼接的字符串,最后使用strings.Join() 函數一次性將所有字符串拼接起來。在數據量非常大時,這種方法的效率也還可以的。

4,利用Buffer( Buffer是一個實現了讀寫方法的可變大小的字節緩沖 ),將所有的字符串都寫入到一個Buffer緩沖區中,最后再統一輸出,這種方法最快。

代碼示例

package main

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

      //第二種方法
      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())

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM