Methode Beschreibung:
Gibt ein neues Pufferobjekt zurück, und der neue Puffer und der alte Puffer teilen einen Speicher.
Aber es wird durch den Start- und Endindexversatz reduziert. (Zum Beispiel, wenn es 1 bis 10 Bytes in einem Puffer gibt, möchten wir nur 4-8 Bytes, sodass wir diese Funktion buf.lice (4,8) verwenden können, da sie einen Speicher teilen, sodass sie keinen Speicher verbrauchen.)
Da der Speicher geteilt wird, wird nach dem Ändern des neuen Puffers auch der Inhalt des alten Puffer geändert.
Grammatik:
Die Codekopie lautet wie folgt:
Buffer.lice ([Start], [Ende])
Parameter empfangen:
Start -Startposition, Standardeinstellung
Endendposition, Standard für die Pufferlänge
Beispiel:
Erstellen Sie einen Puffer mit dem ASCII -Alphabet, verwenden Sie die Slice -Funktion und ändern Sie dann ein Byte im Originalpuffer.
Die Codekopie lautet wie folgt:
var buf1 = neuer Puffer (26);
für (var i = 0; i <26; i ++) {
buf1 [i] = i + 97; // 97 ist 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
Quellcode:
Die Codekopie lautet wie folgt:
// todo (trevnorris): derzeit funktioniert wie array.prototype.slice (), die
// folgt nicht dem neuen Standard, um außerhalb der Bereichsindizes herauszuwerfen.
Buffer.prototype.slice = function (start, ende) {
var len = this.Length;
Start = ~~ Start;
end = util.isundefined (Ende)? Len: ~~ Ende;
if (start <0) {
Start += len;
if (starten <0)
Start = 0;
} else if (start> len) {
start = len;
}
if (Ende <0) {
Ende += Len;
if (Ende <0)
Ende = 0;
} else if (end> len) {
Ende = Len;
}
if (Ende <Start)
Ende = Start;
var buf = new NativeBuffer ();
Sliceonto (this, buf, starten, enden);
buf.length = end - start;
if (buf.length> 0)
buf.parent = util.isundefined (this.Parent)? Dies: this.Parent;
BUF zurückgeben;
};