gpt4 book ai didi

javascript - 为什么修改 Buffer 切片会修改原始切片?

转载 作者:行者123 更新时间:2023-12-03 04:04:32 26 4
gpt4 key购买 nike

以下内容修改 Buffer 的一个切片。

这样做时,它也会修改原始 Buffer。如果我对Array执行类似的操作,那么原始的将保持不变。

那么这个行为是 Node.js 的 Bufferslice 方法具体实现的结果吗?

const fs = require('fs');

fs.readFile(__filename, (err, buffer) => {
const tag = buffer.slice(-2, -1);
tag[0] = 'B';

console.log(buffer.toString());
});

// TAG: A

最佳答案

文档说

Returns a new Buffer that references the same memory as the original, but offset and cropped by the start and end indices. Note: Modifying the new Buffer slice will modify the memory in the original Buffer because the allocated memory of the two objects overlap.

https://nodejs.org/api/buffer.html#buffer_buf_slice_start_end

关于javascript - 为什么修改 Buffer 切片会修改原始切片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44619051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com