go語言中五種字串的拼接方式 小結

2022-09-22 00:30:15 字數 1209 閱讀 9805

目錄

這種方式是我在寫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...