亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

Golang字符串的拼接方法匯總

2020-04-01 18:52:26
字體:
來源:轉載
供稿:網友

字符串拼接在 golang 里面其實有很多種實現。

實現方式

直接使用運算符

func BenchmarkAddStringWithOperator(b *testing.B) {
    hello := "hello"
    world := "world"
    for i := 0; i < b.N; i++ {
        _ = hello + "," + world
    }
}

golang里面的字符串都是不可變的,每次運算都會產生一個新的字符串,所以會產生很多臨時的無用的字符串,不僅沒有用,還會給gc帶來額外的負擔,所以性能比較差

fmt.Sprintf()
func BenchmarkAddStringWithSprintf(b *testing.B) {
    hello := "hello"
    world := "world"
    for i := 0; i < b.N; i++ {
        _ = fmt.Sprintf("%s,%s", hello, world)
    }
}

內部使用[]byte實現,不像直接運算符這種會產生很多臨時的字符串,但是內部的邏輯比較復雜,有很多額外的判斷,還用到了interface,所以性能也不是很好

strings.Join()
func BenchmarkAddStringWithJoin(b *testing.B) {
    hello := "hello"
    world := "world"
    for i := 0; i < b.N; i++ {
        _ = strings.Join([]string{hello, world}, ",")
    }
}

join會根據字符串數組的內容,計算出一個拼接之后的長度,然后申請對應大小的內存,一個一個字符填入,在已有一個數組的情況下,這種效率會很高,但是本來沒有,去構造這個數據的代價也不小

buffer.WriteString()
func BenchmarkAddStringWithBuffer(b *testing.B) {
    hello := "hello"
    world := "world"
    for i := 0; i < 1000; i++ {
        var buffer bytes.Buffer
        buffer.WriteString(hello)
        buffer.WriteString(",")
        buffer.WriteString(world)
        _ = buffer.String()
    }
}

這個比較理想,可以當成可變字符使用,對內存的增長也有優化,如果能預估字符串的長度,還可以用buffer.Grow()接口來設置capacity

測試結果

BenchmarkAddStringWithOperator-8            50000000             30.3 ns/op
BenchmarkAddStringWithSprintf-8             5000000              261  ns/op
BenchmarkAddStringWithJoin-8                30000000             58.7 ns/op
BenchmarkAddStringWithBuffer-8              2000000000           0.00 ns/op

主要結論

  1. 在已有字符串數組的場合,使用strings.Join()能有比較好的性能
  2. 在一些性能要求較高的場合,盡量使用buffer.WriteString()以獲得更好的性能
  3. 性能要求不太高的場合,直接使用運算符,代碼更簡短清晰,能獲得比較好的可讀性
  4. 如果需要拼接的不僅僅是字符串,還有數字之類的其他需求的話,可以考慮fmt.Sprintf()

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色综久久综合桃花网| 97视频在线观看免费| 国产精品日韩在线一区| 神马国产精品影院av| 91精品国产777在线观看| 日韩在线观看视频免费| 一本色道久久综合狠狠躁篇的优点| 日本精品久久久久久久| 日韩欧美中文在线| 国产精品成人免费视频| 青青草国产精品一区二区| 国产亚洲精品91在线| 一夜七次郎国产精品亚洲| 91中文字幕在线| 久久精品男人天堂| 欧美性xxxxhd| 亚洲色图国产精品| 欧美亚州一区二区三区| 亚洲成人网av| 黄网站色欧美视频| 久久久久久久999| 精品日本高清在线播放| 51久久精品夜色国产麻豆| 色午夜这里只有精品| 狠狠做深爱婷婷久久综合一区| 久久久女女女女999久久| 亚洲人在线观看| 久久久影视精品| 亚洲精品一区二区久| 7777精品视频| 色综合久久中文字幕综合网小说| 综合国产在线视频| 亚洲iv一区二区三区| 久久久久久久一区二区| 91亚洲国产成人久久精品网站| 国产精品男女猛烈高潮激情| 亚洲欧美另类中文字幕| 日韩av电影国产| 欧美大片欧美激情性色a∨久久| 国产精品伦子伦免费视频| 永久555www成人免费| 久久精品国产成人| 国产精品久久久久久久久久ktv| 欧美第一淫aaasss性| 亚洲午夜色婷婷在线| 一区二区三区视频在线| 久久久欧美一区二区| 国产精品视频区1| 91精品在线观看视频| 亚洲精品久久久久久久久久久| 热久久这里只有| 亚洲日韩欧美视频| 亚洲国产精品成人一区二区| 国模叶桐国产精品一区| 日韩欧美999| 国产91色在线|免| 中文字幕日韩视频| 国产成人涩涩涩视频在线观看| 中日韩午夜理伦电影免费| 91在线视频精品| 精品久久久久久中文字幕一区奶水| 国产亚洲人成网站在线观看| 国产美女精彩久久| 日韩少妇与小伙激情| 欧美午夜激情在线| 久久国产精品久久久久久| 国产精品网站入口| 欧美在线观看www| 成人黄色av免费在线观看| 91视频-88av| 粗暴蹂躏中文一区二区三区| 亚洲免费av片| 国产97在线播放| 国产亚洲福利一区| 国产精品久久久久久久久久免费| 精品成人久久av| 国产丝袜视频一区| 国产精品扒开腿做爽爽爽男男| 欧美电影免费观看高清完整| 91黑丝在线观看| 国产一区二区三区免费视频| 成人精品一区二区三区电影黑人| 久久久亚洲国产天美传媒修理工| 久久综合免费视频影院| 国产三级精品网站| 欧美电影在线观看网站| 亚洲久久久久久久久久久| 国产成人一区二区在线| 欧美黑人一级爽快片淫片高清| 亚洲第一男人av| 亚洲成人激情在线观看| 成人看片人aa| 国产精品盗摄久久久| 91精品久久久久久久久久另类| 亚洲男女性事视频| 国产精品午夜视频| 久久av.com| 国产精品视频网| 久久久精品久久久| 社区色欧美激情 | 国产一区二区三区在线观看视频| 久久精品视频在线观看| 日韩在线激情视频| 国产亚洲精品一区二555| 91久久精品国产| 国模精品一区二区三区色天香| 中文字幕亚洲一区二区三区五十路| 在线视频欧美性高潮| 亚洲成av人乱码色午夜| 色婷婷综合久久久久| 久久久久久久成人| 国产精品精品一区二区三区午夜版| 成人精品视频久久久久| 国产精品久久激情| 亚洲二区中文字幕| 久久精品中文字幕一区| 国产在线日韩在线| 国产精品福利小视频| 欧美精品久久久久久久免费观看| 欧美激情精品久久久久久久变态| 久久噜噜噜精品国产亚洲综合| 日韩av网址在线| 国内自拍欧美激情| 国产精品免费一区二区三区都可以| 亚洲精品视频在线观看视频| 久久精品视频在线| 国产精品男人爽免费视频1| 精品一区电影国产| 91精品在线影院| 亚洲欧美色图片| 久久久久久有精品国产| 91精品视频在线免费观看| 日韩在线播放av| 日韩欧美在线视频观看| 亚洲人成电影在线播放| 欧美精品一区二区免费| 中文字幕欧美日韩va免费视频| 国产三级精品网站| 日本伊人精品一区二区三区介绍| 97色在线视频观看| 精品亚洲精品福利线在观看| 久久久久久国产| 久久免费视频观看| 亚洲精品在线视频| 日韩欧美亚洲范冰冰与中字| 欧美精品少妇videofree| 亚洲电影第1页| 粗暴蹂躏中文一区二区三区| 日韩精品免费在线观看| 亚洲天堂视频在线观看| 色悠悠久久88| 亚洲美女福利视频网站| 中国日韩欧美久久久久久久久| 日韩一区二区福利| 在线观看欧美视频| 国产热re99久久6国产精品| 国产在线999| 欧美午夜电影在线| 欧美第一淫aaasss性| 欧美特级www| 在线观看国产成人av片| 国产69精品久久久久9999| 国产成人在线一区| 日韩激情片免费|