类似函数peek();(来自C++)

Similar function peek( ); (from C++) in Ruby

本文关键字:来自 C++ peek 函数      更新时间:2023-10-16

是否有类似的peek();ruby中的(来自C++)函数?有其他选择吗?

我找到了一种方法。

使用StringScanner:

require 'strscan'
scanner = StringScanner.new(YourStringHere)
puts scanner.peek(1)

您也可以使用StringScanner扫描文件:

file = File.open('hello.txt', 'rb')
scanner = StringScanner.new(file.read)

也许您可以使用ungetc。试着看看这里。

这是不相等的,但你可以得到相同的结果。

Enumerator#peek让您了解Enumerator的下一个值。IO#字节IO#字符将分别为字节流或字符流提供一个枚举器。由于您是用"rb"打开的,我认为您需要字节。

file = File.open('hello.txt', 'rb') # assume contains text "hellon"
fstream = file.bytes
fstream.next # => "h"
fstream.peek # => "e"
fstream.next # => "e"
...

当然,现在您有点拘泥于一次处理流上的字节。