GO初学者问一个循环问题

meiruhua · · 1964 次点击
st := time.Now().Unix() var str strings.Builder for i := 0; i < 100000; i++ { str.WriteString("hello" + strconv.Itoa(i)) } fmt.Println(time.Now().Unix() - st)
#12
更多评论
st := time.Now().Unix() var buffer bytes.Buffer for i := 0; i < 100000; i++ { buffer.WriteString("hello" + strconv.Itoa(i)) } fmt.Println(time.Now().Unix() - st) 用bytes.buffer string拼接本身是重新分配了对象,一个字符串是一个不可改变的字节序列 https://studygolang.com/articles/21629 原因看这个
#1
``` st := time.Now().Unix() var buffer bytes.Buffer for i := 0; i < 100000; i++ { buffer.WriteString("hello" + strconv.Itoa(i)) } fmt.Println(time.Now().Unix() - st) ``` 用bytes.buffer string拼接本身是重新分配了对象,一个字符串是一个不可改变的字节序列 https://studygolang.com/articles/21629 原因看这个
#2