lodash 中的对 Buffer 的深拷贝为什么用 slice 函数https://github.com/lodash/lodash/blob/master/.internal/cloneBuffer.js#L25 从 Buffer 的官方文档看http://nodejs.cn/api/buffer.html#buffer_buf_slice_start_end slice 函数返回一个新的 Buffer,它引用与原始的 Buffer 相同的内存,这样的结果不是浅拷贝么? 我的理解是这样才对
function cloneBuffer(buffer, isDeep) {
if (!isDeep) { // 这里加上!
return buffer.slice()
}
const length = buffer.length
const result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length)
buffer.copy(result)
return result
}
求解答
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.