四種拼接方案:
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())
}