golang 高效字符串拼接
来源:互联网 发布:冰川网络官网下载 编辑:程序博客网 时间:2024/05/03 13:27
以下内容摘自许世伟《go语言程序设计》:
连接字符串使用" + "或者使用slice拼接,"这2个转换都不是无代价的"
虽然方便,但是使用+=操作符并不是在一个循环中往字符串末尾追加字符串最有效的方式,一个有效的方式是准备好一个字符串切片([]string),然后使用strings.Join()函数一次性将所有字符串串联起来。但是在go中还有一个更好的方法,其原理类似于java中的stringBuilder
package mainimport ("bytes""fmt")func main() {var buffer bytes.Buffer //Buffer是一个实现了读写方法的可变大小的字节缓冲for {if piece, ok := getNextString(); ok {/* func (b *Buffer) WriteString(s string) (n int, err error) Write将s的内容写入缓冲中,如必要会增加缓冲容量。返回值n为len(p),err总是nil。如果缓冲变得太大,Write会采用错误值ErrTooLarge引发panic。*/buffer.WriteString(piece)} else {break}}fmt.Println("拼接后的结果为-->", buffer.String())}经测试,连接100万个字符串,使用buffer消耗的时间约为77毫秒,使用+=消耗的时间为.....抱歉,我等了5分钟结果没跑出来,减小数量级后,连接10万字符串的时间为3312毫秒
另外,golang中的字符串输出是有长度限制的,不知道具体限制有多少,过1000万长度就不显示了,过1000亿liteIDE崩溃了。。。
0 0
- golang 高效字符串拼接
- golang 高效字符串拼接
- 高效的JS 拼接字符串
- 高效的JS字符串拼接
- 最优雅,高效的javascript字符串拼接
- c#--String Builder --字符串高效拼接
- C#实现方便又高效的字符串拼接类StringJoiner
- golang json数组拼接
- Golang 切片拼接
- 拼接字符串:
- 字符串拼接
- 字符串拼接
- 字符串拼接
- 字符串拼接
- 拼接字符串
- 拼接字符串
- 拼接字符串
- 拼接字符串
- “全球购”聚齐电商大佬
- [BZOJ1202]HNOI2005 狡猾的商人|并查集|差分约束
- 天声人語 20150418
- 实例表现ibatis的基础用法
- 【调试html技巧】ctrl F5+F5区别
- golang 高效字符串拼接
- spring InitializingBean接口
- IntelliJ IDEA的光芒会盖过Eclipse吗(含常用快捷键)
- Oracle ascii函数
- 日经春秋 20150418
- 找不到com.google.android.maps.*
- 深入分析 iBATIS 框架之系统架构与映射原理
- Linux版本了解&目录了解
- Centos 下挂载“ntfs”文件系统