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


Node.js Buffer buf.byteOffset用法及代碼示例


buf.byteOffset

  • <integer> Buffer 的基礎 ArrayBuffer 對象的 byteOffset

Buffer.from(ArrayBuffer, byteOffset, length) 中設置 byteOffset 時,或者有時在分配小於 Buffer.poolSizeBuffer 時,緩衝區不會從底層 ArrayBuffer 上的零偏移量開始。

當使用 buf.buffer 直接訪問底層 ArrayBuffer 時,這可能會導致問題,因為 ArrayBuffer 的其他部分可能與 Buffer 對象本身無關。

創建與Buffer 共享其內存的TypedArray 對象時的一個常見問題是,在這種情況下,需要正確指定byteOffset

import { Buffer } from 'node:buffer';

// Create a buffer smaller than `Buffer.poolSize`.
const nodeBuffer = Buffer.from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);

// When casting the Node.js Buffer to an Int8Array, use the byteOffset
// to refer only to the part of `nodeBuffer.buffer` that contains the memory
// for `nodeBuffer`.
new Int8Array(nodeBuffer.buffer, nodeBuffer.byteOffset, nodeBuffer.length);const { Buffer } = require('node:buffer');

// Create a buffer smaller than `Buffer.poolSize`.
const nodeBuffer = Buffer.from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);

// When casting the Node.js Buffer to an Int8Array, use the byteOffset
// to refer only to the part of `nodeBuffer.buffer` that contains the memory
// for `nodeBuffer`.
new Int8Array(nodeBuffer.buffer, nodeBuffer.byteOffset, nodeBuffer.length);

相關用法


注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 buf.byteOffset。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。