golang中的字串拼接
go語言中支援的字串拼接的方法有很多種,這裡就來羅列一下
常用的字串拼接方法
1.最常用的方法肯定是 + 連線兩個字串。這與python類似,不過由於golang中的字串是不可變的型別,因此用 + 連線會產生一個新的字串對效率有影響。
s1 := "字串" s2 := "拼接" s3 := s1 + s2 fmt.Print(s3) //s3 = "列印字串"
2.第二種方法使用sprintf函式,雖然不會像直接使用 + 那樣產生臨時字串。但是效率也不高
s1 := "字串" s2 := "拼接" s3 := fmt.Sprintf("%s%s", s1, s2) //s3 = "列印字串"
3.第三種方法是用Join函式,這裡我們需要先引入strings包才能呼叫Join函式。Join函式會先根據字串陣列的內容,計算出一個拼接之後的長度,然後申請對應大小的記憶體,一個一個字串填入,在已有一個數組的情況下,這種效率會很高,如果沒有的話效率也不高。
//需要先匯入strings包 s1 := "字串" s2 := "拼接" //定義一個字串陣列包含上述的字串 var str []string = []string{s1, s2} //呼叫Join函式 s3 := strings.Join(str, "") fmt.Print(s3)
4.第四個方法是呼叫buffer.WriteString函式,這種方法的效能就要大大優於上面的了。
//需要先匯入bytes包 s1 := "字串" s2 := "拼接" //定義Buffer型別 var bt bytes.Buffer 向bt中寫入字串 bt.WriteString(s1) bt.WriteString(s2) //獲得拼接後的字串 s3 := bt.String()
5.第5個方法是用buffer.Builder,這個方法和上面的差不多,不過官方建議用這個,使用方法和上面基本一樣
//需要先匯入Strings包 s1 := "字串" s2 := "拼接" var build strings.Builder build.WriteString(s1) build.WriteString(s2) s3 := build.String()
結論
一般對於少量的字串拼接可以直接用+來連線,不過最好的方法還是Builder。