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