源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

node.js中的buffer.slice方法使用说明

  • 时间:2022-11-23 02:57 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:node.js中的buffer.slice方法使用说明
[b]方法说明:[/b] 返回一个新的buffer对象,这个新buffer和老buffer公用一个内存。 但是被start和end索引偏移缩减了。(比如,一个buffer里有1到10个字节,我们只想要4-8个字节,就可以用这个函数buf.slice(4,8),因为他们共用一个内存,所以不会消耗内存,) 因为共用内存,所以修改新的buffer后,老buffer的内容同样也会被修改。 [b]语法:[/b]
[u]复制代码[/u] 代码如下:
buffer.slice([start], [end])
[b]接收参数:[/b] start      开始位置,默认 end      结束位置,默认为buffer长度 [b]例子:[/b] 用ASCII码字母表创建一个buffer,用一下slice函数,然后修改原buffer中的一个字节。
[u]复制代码[/u] 代码如下:
var buf1 = new Buffer(26); for (var i = 0 ; i < 26 ; i++) {   buf1[i] = i + 97; // 97 is 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
[b]源码:[/b]
[u]复制代码[/u] 代码如下:
// TODO(trevnorris): currently works like Array.prototype.slice(), which // doesn't follow the new standard for throwing on out of range indexes. Buffer.prototype.slice = function(start, end) {   var len = this.length;   start = ~~start;   end = util.isUndefined(end) ? len : ~~end;   if (start < 0) {     start += len;     if (start < 0)       start = 0;   } else if (start > len) {     start = len;   }   if (end < 0) {     end += len;     if (end < 0)       end = 0;   } else if (end > len) {     end = len;   }   if (end < start)     end = start;   var buf = new NativeBuffer();   sliceOnto(this, buf, start, end);   buf.length = end - start;   if (buf.length > 0)     buf.parent = util.isUndefined(this.parent) ? this : this.parent;   return buf; };
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部