回答

收藏

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

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

在 Go 中,astring它是一种原始类型,这意味着它只读,每次操作都会创建一个新的字符串。
. n( @3 E; s4 O4 }" L8 V% B, G因此,如果我想在不知道结果字符串长度的情况下多次连接字符串,最好的方法是什么?& r' O3 n! }5 I7 J
天真的方法是:4 l2 r/ [$ \  |8 o
[code]var s stringfor i := 0; i 但这似乎不是很有效。
# \" Y  G0 T) P! H- Z, z                                                               
$ k& ?/ ]1 }; S2 T/ T+ B8 v1 o% C2 S    解决方案:                                                                & }6 i, z4 Z$ ~6 @
                                                                新方法:从 Go 1.从10 开始,有一种strings.Builder类型
: M+ J, \+ _! m$ M旧方式:使用bytes包。它有一个Buffer实现io.Writer.% _( y  w6 y7 P3 b
[code]package mainimport  "bytes"    "fmt")func main()      var buffer bytes.Buffer    for i := 0; i 这是在 O(n) 时间内完成。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则