Node缓冲区拷贝语法为:
buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])
接下来举例写的代码都是这样的:
var buf1 = Buffer.from('abcdefghijkl');
var buf2 = Buffer.from('RUNOOB');
//将 buf2 插入到 buf1 指定位置上
buf2.copy(buf1, 2);
console.log(buf1.toString());
我看语法中用到了中括号,可是实际写的时候也没有加中括号,为什么语法中会出现中括号,还是因为这是一种约定成俗的规则呢?
自己也试着尝试了一下,我看也不用加中括号呀
var buf1 = Buffer.from("abcdefghijklmnopqrstuvwxyz");
var buf2 = Buffer.from("123456789");
buf2.copy(buf1 , 2 , 3 , 4);
console.log(buf1.toString());//ab4defghijklmnopqrstuvwxyz
谢谢大家的解答!^ ^
这个是介绍语法时提示可选参数,就拿
它代表着有
buf.copy(targetBuffer)
——完整拷贝缓冲区到目标区域,且覆盖目标区域从头开始的位置或
buf.copy(targetBuffer, targetStart)
——完整拷贝缓冲区到 目标缓冲区targetStart
开始的位置或
buf.copy(targetBuffer, targetStart, sourceStart)
—— 从源缓冲区sourceStart
开始的位置拷贝数据到 目标缓冲区targetStart
开始的位置或
buf.copy(targetBuffer, targetStart, sourceStart, sourceEnd)
——从源缓冲区拷贝sourceStart
至sourceEnd
间的数据 到 目标缓冲区targetStart
开始的位置等4种用法,其中:
targetBuffer——目标缓冲区
targetStart ——目标缓冲区被覆盖起始位置
sourceStart ——源缓冲区拷贝起始位置
sourceEnd ——源缓冲区拷贝结束位置
你自己后来测试举例比较少,没有真正了解这些用法的目的,对于诸如压缩/解压缩,或者加密/解密等等算法或者其他一些复杂的算法实现中,就会用到后面的功效。