当我可以连接字符串时,为什么我要使用缓冲区?
PSEUDO代码如下
var buffer bytes.Buffer for i := 0; i < 200; i++ { buffer.WriteString(strconv.Itoa(i)) } fmt.Println(buffer.String())
VS
buffer := "" for i := 0; i < 200; i++ { buffer += strconv.Itoa(i) } fmt.Println(buffer)
Cerise Limón.. 7
缓冲区以块的形式增长以分摊内存分配.
因为字符串是不可变的,所以循环中的每次迭代都必须分配一个新字符串.
缓冲区以块的形式增长以分摊内存分配.
因为字符串是不可变的,所以循环中的每次迭代都必须分配一个新字符串.