当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js Buffer buf.slice([start[, end]])用法及代码示例


buf.slice([start[, end]])

历史
版本变化
v17.5.0

buf.slice() 方法已被弃用。

v7.0.0

现在,所有偏移量在对其进行任何计算之前都被强制转换为整数。

v7.1.0、v6.9.2

将偏移量强制为整数现在可以正确处理 32 位整数范围之外的值。

v0.3.0

添加于:v0.3.0


参数
Stability: 0 - 已弃用:改用 buf.subarray

返回一个新的 Buffer,它引用与原始内存相同的内存,但被 startend 索引偏移和裁剪。

此方法与 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());
// 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 (!)

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 buf.slice([start[, end]])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。