gpt4 book ai didi

node.js - Node Buffer.lastIndexOf byteOffset 如何工作?

转载 作者:太空宇宙 更新时间:2023-11-03 23:47:37 26 4
gpt4 key购买 nike

来自 Node 文档:https://nodejs.org/api/buffer.html#buffer_buf_lastindexof_value_byteoffset_encoding

const buf = Buffer.from('this buffer is a buffer');

console.log(buf.lastIndexOf('buffer'));
// Prints: 17

这对我来说很有意义,但这些没有:

console.log(buf.lastIndexOf('buffer', 5));
// Prints: 5

console.log(buf.lastIndexOf('buffer', 4));
// Prints: -1

为什么('buffer', 5)的索引不是17?为什么('buffer', 4)的索引是-1而不是17?

Node 文档说:

  • byteOffset:在 buf 中开始搜索的位置。如果为负数,则从 buf 末尾开始计算偏移量。默认值:buf.length - 1。

buf.length - 1 的默认值意味着它向后搜索缓冲区,这可以解释 lastIndexOf('buffer', 5) = 5 但它没有解释 lastIndexOf('buffer', 4) = -1

最佳答案

搜索从指定索引开始并从那里开始搜索反向词。因此,在您的示例中,当 offsetIndex 为 5 时,它会找到第一个缓冲区(因为它从右到左搜索)。但是当您指定 4 时,该索引左侧不再出现“缓冲区”,因此它返回 -1。

关于node.js - Node Buffer.lastIndexOf byteOffset 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60498403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com