回答

收藏

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

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

在 Go 中,astring它是一种原始类型,这意味着它只读,每次操作都会创建一个新的字符串。0 e1 s& ?/ ^5 Y! t2 L
因此,如果我想在不知道结果字符串长度的情况下多次连接字符串,最好的方法是什么?/ u" v- b! X" }" z# k- U
天真的方法是:% v  z5 x+ N$ ?
[code]var s stringfor i := 0; i 但这似乎不是很有效。; D! k) `8 y' Z; z7 z( e: I; N
                                                                - C& A5 E, ^: n$ Z  O) h% V
    解决方案:                                                                2 L& g/ ^$ d, U/ w  I
                                                                新方法:从 Go 1.从10 开始,有一种strings.Builder类型) a4 b. d( c/ H( y+ Q
旧方式:使用bytes包。它有一个Buffer实现io.Writer.2 V* p0 ?& a! j0 Z0 N- \# Z/ m
[code]package mainimport  "bytes"    "fmt")func main()      var buffer bytes.Buffer    for i := 0; i 这是在 O(n) 时间内完成。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则