buf.slice()
Posted lalalagq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了buf.slice()相关的知识,希望对你有一定的参考价值。
buf.slice([start[, end]])
- start {Number} 默认:0
- end {Number} 默认:buffer.length
- 返回:{Buffer}
返回一个指向相同原始内存的新 Buffer ,但会有偏移并通过 start 和 end 索引值进行裁剪。
请注意,修改这个新的 Buffer 切片,将会修改原始 Buffer 的内存,因为这两个对象共享所分配的内存。
例子:创建一个 ASCII 字母的 Buffer,进行切片,然后修改原始 Buffer 上的一个字节。
const buf1 = Buffer.allocUnsafe(26);
for (var i = 0; i < 26; i++) {
buf1[i] = i + 97; // 97 is ASCII a
}
const buf2 = buf1.slice(0, 3);
buf2.toString('ascii', 0, buf2.length);
// Returns: 'abc'
buf1[0] = 33;
buf2.toString('ascii', 0, buf2.length);
// Returns : '!bc'
指定负索引会导致产生相对于这个 Buffer 的末尾而不是开头的切片(slice)。
const buf = Buffer.from('buffer');
buf.slice(-6, -1).toString();
// Returns 'buffe', equivalent to buf.slice(0, 5)
buf.slice(-6, -2).toString();
// Returns 'buff', equivalent to buf.slice(0, 4)
buf.slice(-5, -2).toString();
// Returns 'uff', equivalent to buf.slice(1, 4)
以上是关于buf.slice()的主要内容,如果未能解决你的问题,请参考以下文章