码迷,mamicode.com
首页 > 其他好文 > 详细

buf.slice()

时间:2018-11-05 13:35:03      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:ice   ring   字节   分配   pre   string   end   产生   通过   

buf.slice([start[, end]])


  • start {Number} 默认:0

  • end {Number} 默认:buffer.length

  • 返回:{Buffer}


返回一个指向相同原始内存的新 Buffer ,但会有偏移并通过 start 和 end 索引值进行裁剪。
请注意,修改这个新的 Buffer 切片,将会修改原始 Buffer 的内存,因为这两个对象共享所分配的内存。
例子:创建一个 ASCII 字母的 Buffer,进行切片,然后修改原始 Buffer 上的一个字节。

const buf1 = Buffer.allocUnsafe(26);

for (var i = 0; i < 26; i++) {
    buf1[i] = i + 97; // 97 is ASCII a
}

const buf2 = buf1.slice(0, 3);
buf2.toString('ascii', 0, buf2.length);
// Returns: 'abc'
buf1[0] = 33;
buf2.toString('ascii', 0, buf2.length);
// Returns : '!bc'

指定负索引会导致产生相对于这个 Buffer 的末尾而不是开头的切片(slice)。

const buf = Buffer.from('buffer');

buf.slice(-6, -1).toString();
// Returns 'buffe', equivalent to buf.slice(0, 5)
buf.slice(-6, -2).toString();
// Returns 'buff', equivalent to buf.slice(0, 4)
buf.slice(-5, -2).toString();
// Returns 'uff', equivalent to buf.slice(1, 4)

buf.slice()

标签:ice   ring   字节   分配   pre   string   end   产生   通过   

原文地址:https://www.cnblogs.com/lalalagq/p/9908519.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!