Maison >interface Web >js tutoriel >Instructions d'utilisation de la méthode buffer.slice dans node.js_node.js

Instructions d'utilisation de la méthode buffer.slice dans node.js_node.js

WBOY
WBOYoriginal
2016-05-16 16:27:451498parcourir

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 :

Copier le code Le code est le suivant :

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.

Copier le code Le code est le suivant :

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 :

Copier le code Le code est le suivant :

// 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 ;
};
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn