Go 語言 中,如何高效的處理字串相加,由於字串 (string) 是不可變的,所以將很多字串拼接起來,會如同宣告新的變數來儲存。這邊就可以透過 strings.Builder 或 bytes.Buffer 來解決字串相加效能問題。除了效能問題之外,還需要注意在 bytes.Buffer
處理 []byte
及 string
之間的轉換,底下拿一個實際上在專案上寫出來的錯誤給大家參考看看
bytes.Buffer 重複使用問題
專案用 bytes.Buffer 套件處理資料 Parsing 後的結果,底下是一個基本範例
package main import ( "bytes" "fmt" ) var buf bytes.Buffer func parseMultipleValue(n int, str string) []byte { buf.Reset() for i := 0; i < n; i++ { buf.WriteString(str) } return buf.Bytes() } func main() { s1 := parseMultipleValue(5, "1") fmt.Println("s1:", string(s1)) s2 := parseMultipleValue(3, "2") fmt.Pri