高效地拼接字符串- go
对比结果:
1 2 3 4 5 6 7 | BenchmarkAdd-4 36 31375864 ns/op 215482269 B/op 10005 allocs/op BenchmarkFmt-4 37 29228970 ns/op 159060782 B/op 30145 allocs/op BenchmarkJoin-4 15288 77334 ns/op 40960 B/op 1 allocs/op BenchmarkBuffer-4 18453 65148 ns/op 98240 B/op 11 allocs/op BenchmarkBuild-4 18283 63780 ns/op 154360 B/op 20 allocs/op PASS ok string 10.122s |
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | package main import ( "bytes" "fmt" "strings" ) var stringArray []string func main() { // s := AddMethd() s := fmtMethod() fmt.Printf( "%v\n" , s) } func init() { setString(10000, "ABC" ) } func setString(n int, s string) { fmt.Println( "执行初始化字符串数组" ) for i := 0; i <= n; i++ { stringArray = append(stringArray, s) } } func AddMethd() (s string) { for _, v := range stringArray { s += v + "," } return } func fmtMethod() (s string) { for _, v := range stringArray { s = fmt.Sprintf( "%s%s" , s, v) } return } func joinMethod() (s string) { s = strings.Join(stringArray, "," ) return } func bufferMethod() (s string) { var b bytes.Buffer for _, v := range stringArray { b.WriteString(v) } s = b.String() return } func builderMethod() (s string) { var b strings.Builder for _, v := range stringArray { b.WriteString(v) } s = b.String() return } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通