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。