由於golang中的字串是不可變的型別,因此用 + 連線會產生乙個新的字串對效率有影響。
這種方式實現的字串拼接過程最簡單,在實際中這種拼接方式在應對少量拼接時,效率還是不錯的。
s1 :=
"hello"
s2 :=
"world"
s3 := s1 + s2
fmt.
print
(s3)
//s3 = "helloworld"
使用sprintf函式,雖然不會像直接使用 + 那樣產生臨時字串。但是效率也不高
s1 :=
"hello"
s2 :=
"world"
s3 := fmt.
sprintf
("%s%s"
, s1, s2)
fmt.
print
(s3)
//helloworld
這裡我們需要先引入strings包才能呼叫join函式。join函式會先根據字串陣列的內容,計算出乙個拼接之後的長度,然後申請對應大小的記憶體,乙個乙個字串填入,在已有乙個陣列的情況下,這種效率會很高,如果沒有的話效率也不高。
s1 :=
"hello"
s2 :=
"world"
//定義乙個字串陣列包含上述的字串
var str [
]string=[
]string
//呼叫join函式
s3 := strings.
join
(str,"")
fmt.
print
(s3)
s1 :=
"hello"
s2 :=
"world"
//定義buffer型別
var bt bytes.buffer
//向bt中寫入字串
bt.writestring
(s1)
bt.writestring
(s2)
//獲得拼接後的字串
s3 := bt.
string()
fmt.
println
(s3)
這個方法和上面第四點的差不多,不過官方建議用這個,使用方法和上面基本一樣
s1 :=
"hello"
s2 :=
"world"
var build strings.builder
build.
writestring
(s1)
build.
writestring
(s2)
s3 := build.
string()
fmt.
println
(s3)
Golang 字串拼接
字串拼接應該在程式設計過程中比較常用的操作了,在go語言中對字串的拼接有多種處理方式,以下通過例項來一一講解 這種應該是最直接最簡單的方式了。func stringplus string 複製 執行go test bench benchmem 檢視效能輸出如下 benchmarkstringplus...
golang字串拼接方式
字串拼接是字元的常見操作。在golang中,遇見了字串拼接。作為乙個長期的c程式設計師,我第一反應是 字串拼接函式strcat,但發現golang並無字串拼接函式。我想起了最簡單的方法,通過 操作符進行字串拼接。但我查了相關資料後發現 golang中的string型別也是唯讀且不可變的 因此,這種拼...
golang 幾種字串的拼接方式
最近在做效能優化,有個函式裡面的耗時特別長,看裡面的操作大多是一些字串拼接的操作,而字串拼接在 golang 裡面其實有很多種實現。1.直接使用運算子func benchmarkaddstringwithoperator b testing.b golang 裡面的字串都是不可變的,每次運算都會產生...