有没有类似的peek(); (来自C ++)函数在ruby中?有没有办法做到这一点?
我找到了办法。
使用StringScanner:
require 'strscan'
scanner = StringScanner.new(YourStringHere)
puts scanner.peek(1)
您也可以使用StringScanner扫描文件:
file = File.open('hello.txt', 'rb')
scanner = StringScanner.new(file.read)
答案 0 :(得分:2)
也许你可以使用ungetc
。试着看here。
它不相等,但您可以获得相同的结果。
答案 1 :(得分:1)
Enumerator#peek让我们看一下枚举器的下一个值。 IO#bytes IO#chars将分别为字节流或字符流提供枚举器。由于你用“rb”打开,我假设你想要字节。
file = File.open('hello.txt', 'rb') # assume contains text "hello\n"
fstream = file.bytes
fstream.next # => "h"
fstream.peek # => "e"
fstream.next # => "e"
...
当然,现在你在流上处理时仍然遇到了字节。