buf.slice([start[, end]])
start
<integer> 新的Buffer
将开始的位置。 默认值:0
。end
<integer> 新的Buffer
将结束的位置(不包括在内)。 默认值:buf.length
.- 返回: <Buffer>
稳定性: 0 - 弃用: 改为使用
buf.subarray
。返回新的 Buffer
,其引用与原始缓冲区相同的内存,但由 start
和 end
索引进行偏移和裁剪。
此方法与 Uint8Array.prototype.slice()
(Buffer
的超类)不兼容。
要复制切片,则使用 Uint8Array.prototype.slice()
。
import { Buffer } from 'node:buffer';
const buf = Buffer.from('buffer');
const copiedBuf = Uint8Array.prototype.slice.call(buf);
copiedBuf[0]++;
console.log(copiedBuf.toString());
// 打印: cuffer
console.log(buf.toString());
// 打印: buffer
// 使用 buf.slice(),修改原始的缓冲区。
const notReallyCopiedBuf = buf.slice();
notReallyCopiedBuf[0]++;
console.log(notReallyCopiedBuf.toString());
// 打印: cuffer
console.log(buf.toString());
// 也打印: cuffer (!)
const { Buffer } = require('node:buffer');
const buf = Buffer.from('buffer');
const copiedBuf = Uint8Array.prototype.slice.call(buf);
copiedBuf[0]++;
console.log(copiedBuf.toString());
// 打印: cuffer
console.log(buf.toString());
// 打印: buffer
// 使用 buf.slice(),修改原始的缓冲区。
const notReallyCopiedBuf = buf.slice();
notReallyCopiedBuf[0]++;
console.log(notReallyCopiedBuf.toString());
// 打印: cuffer
console.log(buf.toString());
// 也打印: cuffer (!)
start
<integer> Where the newBuffer
will start. Default:0
.end
<integer> Where the newBuffer
will end (not inclusive). Default:buf.length
.- Returns: <Buffer>
Stability: 0 - Deprecated: Use
buf.subarray
instead.Returns a new Buffer
that references the same memory as the original, but
offset and cropped by the start
and end
indices.
This method is not compatible with the Uint8Array.prototype.slice()
,
which is a superclass of Buffer
. To copy the slice, use
Uint8Array.prototype.slice()
.
import { Buffer } from 'node:buffer';
const buf = Buffer.from('buffer');
const copiedBuf = Uint8Array.prototype.slice.call(buf);
copiedBuf[0]++;
console.log(copiedBuf.toString());
// Prints: cuffer
console.log(buf.toString());
// Prints: buffer
// With buf.slice(), the original buffer is modified.
const notReallyCopiedBuf = buf.slice();
notReallyCopiedBuf[0]++;
console.log(notReallyCopiedBuf.toString());
// Prints: cuffer
console.log(buf.toString());
// Also prints: cuffer (!)
const { Buffer } = require('node:buffer');
const buf = Buffer.from('buffer');
const copiedBuf = Uint8Array.prototype.slice.call(buf);
copiedBuf[0]++;
console.log(copiedBuf.toString());
// Prints: cuffer
console.log(buf.toString());
// Prints: buffer
// With buf.slice(), the original buffer is modified.
const notReallyCopiedBuf = buf.slice();
notReallyCopiedBuf[0]++;
console.log(notReallyCopiedBuf.toString());
// Prints: cuffer
console.log(buf.toString());
// Also prints: cuffer (!)