Description de la méthode :
Renvoie un nouvel objet tampon. Ce nouveau tampon partage la même mémoire que l'ancien tampon.
Mais réduit par les décalages d'index de début et de fin. (Par exemple, s'il y a 1 à 10 octets dans un tampon et que nous voulons seulement 4 à 8 octets, nous pouvons utiliser cette fonction buf.slice(4,8). Comme ils partagent la même mémoire, ils ne consommeront pas de mémoire. ,)
La mémoire étant partagée, après avoir modifié le nouveau tampon, le contenu de l'ancien tampon sera également modifié.
Grammaire :
buffer.slice([début], [fin])
Paramètres de réception :
start Position de départ, par défaut
end Position finale, la longueur par défaut est la longueur du tampon
Exemple :
Créez un tampon en utilisant l'alphabet ASCII, utilisez la fonction slice, puis modifiez un octet dans le tampon d'origine.
var buf1 = nouveau tampon (26);
pour (var je = 0 ; je < 26 ; je ) {
buf1[i] = i 97; // 97 est 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
Code source :
// TODO(trevnorris) : fonctionne actuellement comme Array.prototype.slice(), qui
// ne suit pas la nouvelle norme pour lancer des index hors plage.
Buffer.prototype.slice = function(début, fin) {
var len = this.length;
start = ~~start;
end = util.isUndefined(end) ? len : ~~end;
si (début < 0) {
Début = len;
Si (début < 0)
Début = 0;
} else if (start > len) {
Début = len;
>
si (fin < 0) {
Fin = len;
Si (fin < 0)
Fin = 0;
} sinon si (fin > len) {
Fin = len;
>
si (fin < début)
Fin = début ;
var buf = new NativeBuffer();
sliceOnto(this, buf, start, end);
buf.length = fin - début;
si (buf.length > 0)
buf.parent = util.isUndefined(this.parent) ? this : this.parent;
Retour buf ;
};