WeChat ミニプログラムバッファの分析

不言
リリース: 2018-06-27 15:12:39
オリジナル
2713 人が閲覧しました

この記事は主に、WeChat アプレットのバッファ バッファの詳細な説明に関する関連情報を紹介します。必要な友人は参照してください

WeChat アプレットのバッファ バッファの詳細な説明

JavaScript 言語自体には、文字列データ型であり、バイナリ型のデータはありません。

ただし、TCP やファイル ストリームなどのストリームを処理する場合は、バイナリ データを使用する必要があります。そのため、Node.js では、バイナリ データを格納するための専用のバッファ領域を作成するために使用される Buffer クラスが定義されています。

node.js では、Buffer クラスは Node カーネルとともにリリースされるコア ライブラリです。バッファ ライブラリは、生データを Node.js に保存する方法を提供し、Node.js での I/O 操作中に移動されたデータを処理する必要があるときはいつでも、Node.js でバッファ ライブラリを使用できるようにします。 。生データは Buffer クラスのインスタンスに保存されます。バッファは整数配列に似ていますが、V8 ヒープ メモリの外側にある生のメモリの一部に対応します。

バッファの作成

1.长度为10的实例
var buf = new Buffer(10)
2.通过给定的数组创建
var buf = new Buffer([10,20,30,40,50])
3.通过字符串创建
var buf = new Buffer("www.csdn.net","utf-8")
utf-8 是默认的编码方式
支持以下编码:"ascii", "utf8", "utf16le", "ucs2", "base64" 和 "hex"。
ログイン後にコピー

Writebuffer.write()

var buf = new Buffer(200)
var len = buf.write("www.csdn.net")
console.log("写入字节数:" + len)
ログイン後にコピー

  • string - バッファに書き込まれる文字列。

  • offset - バッファへの書き込みが開始されるインデックス値、デフォルトは 0 です。

  • length - 書き込まれたバイト数、デフォルトはbuffer.length

  • encoding - 使用されるエンコーディング。デフォルトは 'utf8' です。

キャッシュ read.toString()

buf = new Buffer(26);
for (var i = 0 ; i < 26 ; i++) {
 buf[i] = i + 97;
}

console.log( buf.toString(&#39;ascii&#39;));    // 输出: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString(&#39;ascii&#39;,0,5));  // 输出: abcde
console.log( buf.toString(&#39;utf8&#39;,0,5));  // 输出: abcde
console.log( buf.toString(undefined,0,5)); // 使用 &#39;utf8&#39; 编码, 并输出: abcde
ログイン後にコピー

  1. encoding - 使用されるエンコーディング。デフォルトは 'utf8' です。

  2. start - 読み取りを開始するインデックス位置を指定します。デフォルトは 0 です。

  3. end - 終了位置、デフォルトはバッファーの最後です。 JBuffer を JSON

R

var buf = new Buffer(&#39;www.runoob.com&#39;);
var json = buf.toJSON(buf);
console.log(json);
ログイン後にコピー
E

に結合したbuffer.concat ([])

var buf = new Buffer("北京")
var buf1 = new Buffer("上海")
var buf2 = Buffer.concat([buf,buf1],12)
console.log(buf2.toString())
ログイン後にコピー

listを結合して、Bufferオブジェクトの配列リストを結合しました。

  • totalLength は、マージされた Buffer オブジェクトの合計の長さを指定します。


  • Compare.compare(otherBuffer)

Node.js v0.12.2バージョンで導入されました

var buffer1 = new Buffer("AVCX")
var buffer2 = new Buffer("ACVV")

var result = buffer1.compare(buffer2)

if(result < 0) {
  console.log(buffer1 + " 在 " + buffer2 + "之前");
}else if(result == 0){
  console.log(buffer1 + " 与 " + buffer2 + "相同");
}else {
  console.log(buffer1 + " 在 " + buffer2 + "之后");
}
ログイン後にコピー

Copy.compare(buffer2)

buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])
ログイン後にコピー

ターゲットバッファ -コピーされる Buffer オブジェクト。

  1. targetStart -number、optional、default:0

  2. sourcestart -number、optional、default:0

  3. sourceend-番号、オプション、デフォルト:buffer.length


  4. rreee

.slice (buffer2) を調整する

var buf1 = new Buffer("beiJing")
var buf2 = new Buffer(8)
buf1.copy(buf2)
console.log("buf2 content:"+buf2.toString())
ログイン後にコピー

start -number、オプション、デフォルト: 0

  1. end -number、オプション、デフォルト:buffer.length

  2. 戻り値

古いバッファと同じメモリを指す新しいバッファを返しますが、インデックスの先頭から末尾までが切り取られています。

buf.slice([start[, end]])
ログイン後にコピー


Length .length

var buf1 = new Buffer("beiJing")
var buf2 = buf1.slice(0,8)
console.log("buf2 content:"+buf2)
// beiJing
ログイン後にコピー
//このバッファのバイト数を返します。これは必ずしもバッファの内容のサイズではないことに注意してください。 length はバッファ オブジェクトによって割り当てられるメモリの量であり、バッファ オブジェクトの内容が変化しても変化しません。

以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

WeChat アプレットの動的パラメータの受け渡しについて

WeChat アプレットの非同期処理について

WeChat アプレット開発におけるデータ ストレージ、パラメータの受け渡し、データ キャッシュの概要


以上がWeChat ミニプログラムバッファの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!