方法说明:
返回一个新的buffer对象,这个新buffer和老buffer公用一个内存。
但是被start和end索引偏移缩减了。(比如,一个buffer里有1到10个字节,我们只想要4-8个字节,就可以用这个函数buf.slice(4,8),因为他们共用一个内存,所以不会消耗内存,)
因为共用内存,所以修改新的buffer后,老buffer的内容同样也会被修改。
语法:
buffer.slice([start], [end])
接收参数:
start 开始位置,默认
end 结束位置,默认为buffer长度
例子:
用ASCII码字母表创建一个buffer,用一下slice函数,然后修改原buffer中的一个字节。
var buf1 = new Buffer(26); for (var i = 0 ; i
源码:
// 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 len) { start = len; } if (end len) { end = len; } if (end 0) buf.parent = util.isUndefined(this.parent) ? this : this.parent; return buf; };