當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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]])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。