今天在查找Go資料的時候,偶然中在點進看雲中的《Go入門指南》這本書,簡單的看了下書中的内容,然後看到有一節内容是描述 “誤用字元串”的一個小節,從中了解到go中字元串拼接如果直接用 + 進行拼接的話,效率會比較低,當在for循環次數比較多的時候比較明顯,然後我就測試了。那邊書中上提供的是用另外一種方式,在for循環次數比較多的時候,比較适合。然後我就寫代碼進行簡單測試對比了下,兩者的效率比較大。
(1)這是直接用 + 拼接字元串,for執行100000的結果:
package main
import (
"fmt"
"time"
)
func main() {
var s string
bT := time.Now()
for i := 0; i < 100000; i++ {
s += "1"
}
eT := time.Since(bT)
fmt.Println("Run time: ", eT)
}
// Run time: 1.1867993s
(2)這是用另一種方式進行for,100000的結果:
package main
import (
"bytes"
"fmt"
"time"
)
func main() {
var b bytes.Buffer
bT := time.Now()
for i := 0; i < 100000; i++ {
b.WriteString("1")
}
eT := time.Since(bT)
fmt.Println("Run time: ", eT)
}
// Run time: 2.0005ms
發現兩者的差距比較明顯