node.js_node.js でのbuffer.slice メソッドの使用手順

WBOY
リリース: 2016-05-16 16:27:45
オリジナル
1437 人が閲覧しました

メソッドの説明:

新しいバッファ オブジェクトを返します。この新しいバッファは古いバッファと同じメモリを共有します。

ただし、開始インデックスと終了インデックスのオフセットによって減少します。 (たとえば、バッファー内に 1 ~ 10 バイトがあり、4 ~ 8 バイトだけが必要な場合、この関数 buf.slice(4,8) を使用できます。これらは同じメモリを共有するため、メモリを消費しません。 、)

メモリが共有されているため、新しいバッファを変更すると、古いバッファの内容も変更されます。

文法:

コードをコピーします コードは次のとおりです:

buffer.slice([開始], [終了])

パラメータを受信します:

start 開始位置、デフォルト

end 終了位置、デフォルトはバッファ長です

例:

ASCII アルファベットを使用してバッファを作成し、スライス関数を使用して、元のバッファのバイトを変更します。

コードをコピーします コードは次のとおりです:

var buf1 = 新しいバッファ(26);
for (var i = 0 ; i buf1[i] = i 97; // 97 は ASCII a
}
var buf2 = buf1.slice(0, 3);
console.log(buf2.toString('ascii', 0, buf2.length));
buf1[0] = 33;
console.log(buf2.toString('ascii', 0, buf2.length));
// abc
// !bc

ソースコード:

コードをコピーします コードは次のとおりです:

// TODO(trevnorris): 現在は Array.prototype.slice() のように動作します。
// 範囲外のインデックスをスローするための新しい標準に従っていません。
Buffer.prototype.slice = function(start, end) {
var len = this.length;
start = ~~start;
end = util.isUnknown(end) len : ~~end;
if (開始 開始 = len;
If (開始 開始 = 0;
} else if (開始 > len) {
開始 = len;
}
if (end 終了 = len;
If (終了 終了 = 0;
} else if (end > len) {
終了 = len;
}
if (終了 終了 = 開始;
var buf = new NativeBuffer();
liceOnto(this, buf, start, end);
buf.length = 終了 - 開始;
if (buf.length > 0)
buf.parent = util.isUnknown(this.parent) ? this : this.parent;
戻りバフ;
};
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!