golang拼接字符串的5種實現(xiàn)方式
拼接字符串的方式共5種
方式一:使用 “+”
字符串只能被訪問,不能被修改。
所以在拼接字符串時,需要內(nèi)存拷貝,會帶來性能的消耗。
但是可讀性強,適合少量字符串拼接
package main
import "fmt"
func main() {
var (
a string = "一"
b string = "二"
c string = "三"
stringJoin string
)
stringJoin = a + b + c
fmt.Println("使用‘+'拼接字符串的結(jié)果為:", stringJoin)
}方式二:使用 strings.Join()
適合字符串類型的切片拼接
package main
import (
"fmt"
"strings"
)
func main() {
str := []string{"a", "b", "c"}
var strJoin string = strings.Join(str, ",")
fmt.Println("使用strings.Join拼接字符串的結(jié)果為:", strJoin)
}方式三:使用fmt.Sprint
可以拼接其他類型,但會涉及類型的轉(zhuǎn)換,底層實現(xiàn)是[] byte字節(jié)切面
package main
import "fmt"
func main() {
var (
name string = "張三"
age int32 = 18
str string
)
str = fmt.Sprintf("姓名:%s,年齡:%d", name, age)
str1 := fmt.Sprint(name, age)
str2 := fmt.Sprintln(name, age)
fmt.Println(str)
fmt.Println(str1)
fmt.Println(str2)
// 結(jié)果:
// 姓名:張三,年齡:18
// 張三18
// 張三 18
//
}方式四:使用bytes.Buffer
支持字符串,字符,unicode,但會涉及字符串和[] byte之間的轉(zhuǎn)換,底層[] byte,性能一般,因為WtiteString方法使用的buffer太長,會導致panic,少量拼接可以使用
package main
import (
"bytes"
"fmt"
)
func main() {
var (
info bytes.Buffer
str string
)
info.WriteString("my")
info.WriteString("name")
info.WriteString("is")
info.WriteString("Tom")
str = info.String()
fmt.Println("使用bytes.Buffer拼接結(jié)果為:", str)
//結(jié)果:
//使用bytes.Buffer拼接結(jié)果為: mynameisTom
}方式五:使用strings.Builder
支持字符串,字符,unicode,使用unsafe。
Pointer優(yōu)化了字符串和[] byte之間的轉(zhuǎn)換,在字符串大量拼接的場景下建議使用
var (
info strings.Builder
str string
)
info.WriteString("my")
info.WriteString("name")
info.WriteString("is")
info.WriteString("Tom")
str = info.String()
fmt.Println("使用strings.Buffer拼接結(jié)果為:", str)
//使用strings.Buffer拼接結(jié)果為: mynameisTom總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
golang 實現(xiàn)tcp轉(zhuǎn)發(fā)代理的方法
今天小編就為大家分享一篇golang 實現(xiàn)tcp轉(zhuǎn)發(fā)代理的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
golang HTTP 服務器 處理 日志/Stream流的操作
這篇文章主要介紹了golang HTTP 服務器 處理 日志/Stream流的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
如何使用Go語言實現(xiàn)基于泛型的Jaccard相似度算法
這篇文章主要介紹了如何使用Go語言實現(xiàn)基于泛型的Jaccard相似度算法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-08-08
使用golang獲取linux上文件的訪問/創(chuàng)建/修改時間
這篇文章主要介紹了使用golang獲取linux上文件的訪問/創(chuàng)建/修改時間,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08
Go語言使用ioutil.ReadAll函數(shù)需要注意基本說明
這篇文章主要為大家介紹了Go語言使用ioutil.ReadAll函數(shù)需要注意基本說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07

