目錄
這種方式是我在寫golang經常用的方式,gbdjwwvyho語言用+拼接,php使用.拼接,不過由於golang中的字串是不可變的型別,因此用 + 連線會產生乙個新的字串對效率有影響。
func main()
s1 := "hello"
s2 := "word"
s3 := fmt.sprintf(程式設計客棧"%s%s", s1, s2) //s3 = "helloword"
這種方式也是開發過程中經常使用到的,這樣寫的好處就是不會直接產生臨時字串,但是效率好像也是不是特別高。
使用join函式我們需要先引入strings包才能呼叫join函式。join函式會先根據字串陣列的內容,計算出乙個拼接之後的長度,然後申請對應大小的記憶體,乙個乙個字串填入,在已有乙個陣列的情況下,這種效率會很高,如果沒有的話效率也不高。我一般用來切片轉字串使用。
s1 := "hello"
s2 := "word"
var str string = string
s3 := strings.join(str, "")
fmt.print(s3)
s1 := "hello"
s2 := "word"
var bt bytes.buffer
bt.writestring(s1)
bt.writestring(s2)
s3 := bt.string()
fmt.println(s3)
效率比上面的高不少但是我在開發中基本上沒有用過。
s1 := "hello"
s2 := "word"
var build strings.builder
builwww.cppcns.comd.writestring(s1)
build.writestring(s2)
s3 := build.string()
fmt.println(s3)
官方建議使用的的拼接方式,和上面的使用方法差不多,官方建議是官方的我是小白只喜歡第一種,所以一般情況下我都是用+拼接,如果拼接的字串比較長的話就是最後一種方式了,畢竟保命要緊。
func benchmarkaddstringwithoperator(b *testing.b)
}golang 裡面的字串都是不可變的,每次運算都會產生乙個新的字串,所以會產生很多臨時的無用的字串,不僅沒有用,還會給 gc 帶來額外的負擔,所以效能比較差
Go語言字串拼接的三種方式
通過建立乙個緩衝byte型別的緩衝器str1,然後通過writestring方法將傳入的字串放入緩衝器的尾部,已達到拼接的作用,然後呼叫緩衝器str1的string 方法,可以返回放入緩衝器中的內容 實際返回的是緩衝器中未讀的部分 返回型別為string。var str1 bytes.buffer ...
Python字串拼接的五種方式
第一種 通過加號 的形式 print 第一種方式通過加號形式連線 love python n 第二種 通過逗號 的形式 print 第二種方式通過逗號形式連線 love python n 第三種 直接連線 中間有無空格均可 print 第三種方式通過直接連線形式連線 一 love python n ...
c語言中的字串拼接
在看核心原始碼時,看到這樣一段 int init ip vs protocol init void while 0 protocols 0 0 protocols 2 0 ifdef config ip vs proto tcp register protocol ip vs protocol tc...