回答

收藏

如何在go中有效地连接字符串

技术问答 技术问答 288 人阅读 | 0 人回复 | 2023-09-12

在 Go 中,astring它是一种原始类型,这意味着它只读,每次操作都会创建一个新的字符串。, I7 F# i7 c& V7 a0 V& o: f
因此,如果我想在不知道结果字符串长度的情况下多次连接字符串,最好的方法是什么?2 A1 _9 F4 T& |. M, O2 s+ ^* \/ p
天真的方法是:
6 X! E, f  I. L[code]var s stringfor i := 0; i 但这似乎不是很有效。
; z% W+ h6 `* t% E1 U8 }+ }0 H$ D                                                               
: b, t# |/ o4 s& O% e3 K/ i9 N7 F$ ]    解决方案:                                                               
' O; N, f9 i5 x# ^0 ], ^                                                                新方法:从 Go 1.从10 开始,有一种strings.Builder类型5 O4 }3 O2 h% a( s' ]
旧方式:使用bytes包。它有一个Buffer实现io.Writer.
; i0 z+ D! e0 i2 K[code]package mainimport  "bytes"    "fmt")func main()      var buffer bytes.Buffer    for i := 0; i 这是在 O(n) 时间内完成。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则