当我只能连接字符串时,为什么要使用缓冲区?
伪代码如下
var buffer bytes.Buffer
for i := 0; i < 200; i++ {
buffer.WriteString(strconv.Itoa(i))
}
fmt.Println(buffer.String())
对比
buffer := ""
for i := 0; i < 200; i++ {
buffer += strconv.Itoa(i)
}
fmt.Println(buffer)
最佳答案
缓冲区以 block 的形式增长以分摊内存分配。
因为字符串是不可变的,所以循环中的每次迭代都必须分配一个新字符串。
关于go - 当我们可以存储在字符串变量中时,缓冲区的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34684751/