在节点js中使用buffer.copy()有什么用?

sai*_*tta 3 javascript node.js

我想知道nodejs应用程序中buffer.copy()的用途是什么.请解释一下任何实时的例子?以及节点js中复制和切片方法之间的区别.这个怎么运作?

rsp*_*rsp 6

与字符串不同,Node中的缓冲区是可变的.这意味着您可以创建一个缓冲区,将其传递到其他地方,当它在一个地方被更改时,它将在两个地方都发生变化,这并不总是您想要的.如果你想确保没有什么可以改变你的缓冲区,那么你需要复制它.

slice()返回一个新的缓冲区,则旧的一部分,类似于如何slice()为字符串或数组的作品.

  • `slice()` 通过引用返回缓冲区的一部分!这意味着如果您更改其中之一,两者都会更改。 (5认同)

Ash*_*thi 5

buffer.copy() 复制缓冲区。这是一个例子

var buffer1 = new Buffer('ABC');

//copy a buffer
var buffer2 = new Buffer(3);
buffer1.copy(buffer2);
console.log("buffer2 content: " + buffer2.toString());
Run Code Online (Sandbox Code Playgroud)

执行上述程序时,会产生以下结果?

buffer2 content: ABC
Run Code Online (Sandbox Code Playgroud)

buffer.slice() 方法用于获取节点缓冲区的子缓冲区?这是示例。

var buffer1 = new Buffer('maximizedPoint');

//slicing a buffer
var buffer2 = buffer1.slice(0,9);
console.log("buffer2 content: " + buffer2.toString());
Run Code Online (Sandbox Code Playgroud)

执行上述程序时,会产生以下结果?

buffer2 content: maximized
Run Code Online (Sandbox Code Playgroud)