【发布时间】:2015-10-25 15:42:06
【问题描述】:
我正在尝试将数组编组为字符串,用换行符分隔所有元素。我内存不足,正在考虑一种更有效的方法。
buffer := ""
for _, record := range all_data {
body, _ := json.Marshal(record)
buffer += string(body) + "\n" // i run out of memory here
问题:
有没有办法将换行符附加到字节数组?现在我正在通过string(body) 进行投射,但我认为这个操作分配了很多内存(但也许我错了)。
【问题讨论】:
-
以后你打算如何在你的应用中使用
buffer? -
您可以将缓冲区更改为字节切片并使用内置函数 append(...),但如果您尝试追加 GB 的数据,则无论如何都会出现内存不足的情况。跨度>
-
string在 Golang 中是常量。最好使用bytes.Buffer以及string不变的其他语言。
标签: go