我想知道nodejs应用程序中buffer.copy()的用途是什么。请解释一下任何实时的例子?以及节点js中复制和切片方法之间的区别。它是如何工作的?
答案 0 :(得分:6)
与字符串不同,Node中的缓冲区是可变的。这意味着您可以创建一个缓冲区,将其传递到其他地方,当它在一个地方被更改时,它将在两个地方都发生变化,这并不总是您想要的。如果你想确保没有任何东西可以改变你的缓冲区,那么你需要复制它。
slice()
返回一个新缓冲区,它是旧缓冲区的一部分,类似于slice()
对字符串或数组的工作方式。
答案 1 :(得分:3)
buffer.copy()复制缓冲区。 这是一个例子
var buffer1 = new Buffer('ABC');
//copy a buffer
var buffer2 = new Buffer(3);
buffer1.copy(buffer2);
console.log("buffer2 content: " + buffer2.toString());
执行上述程序时,会产生以下结果 -
buffer2 content: ABC
buffer.slice()方法用于获取节点缓冲区的子缓冲区 - 这是一个例子。
var buffer1 = new Buffer('maximizedPoint');
//slicing a buffer
var buffer2 = buffer1.slice(0,9);
console.log("buffer2 content: " + buffer2.toString());
执行上述程序时,会产生以下结果 -
buffer2 content: maximized