以下内容修改了Buffer
的切片。
这样做,它也会修改原始 Buffer
。如果我要在Array
上执行类似的操作,那么原件将保持不变。
这种行为也是Node.js上slice
方法的具体实现的结果。 Buffer
?
const fs = require('fs');
fs.readFile(__filename, (err, buffer) => {
const tag = buffer.slice(-2, -1);
tag[0] = 'B';
console.log(buffer.toString());
});
// TAG: A
答案 0 :(得分:1)
文档说
返回一个新的Buffer,它引用与原始内存相同的内存,但是偏移并由开始和结束索引裁剪。注意:修改新的缓冲区片段将修改原始缓冲区中的内存,因为两个对象的已分配内存重叠。
https://nodejs.org/api/buffer.html#buffer_buf_slice_start_end