Что делает метод.rewind для Tempfile в ruby?

Я просмотрел эти документы и Google, и не могу найти цель .rewindи чем он отличается от .closeв контексте работы с Tempfile,

Кроме того, почему .read вернуть пустую строку перед перемоткой?

Вот пример:

file = Tempfile.new('foo')
file.path      # => A unique filename in the OS's temp directory,
               #    e.g.: "/tmp/foo.24722.0"
               #    This filename contains 'foo' in its basename.
file.write("hello world")
file.rewind
file.read      # => "hello world"
file.close
file.unlink    # deletes the temp file

1 ответ

Решение

Перемотка назад - узнайте больше об этом на рубиновой документации

IO# Close - Подробнее о рубиновых документах

Читайте - Читайте больше на рубиновых документах

Резюме

перемотка
Позиционирует IOS в начале ввода, сбрасывая белье на ноль. Перемотка сбрасывает номер строки до нуля

f = File.new("testfile")
f.readline   #=> "This is line one\n"
f.rewind     #=> 0
f.lineno     #=> 0
f.readline   #=> "This is line one\n"

IO# близко
Закрывает IOS и сбрасывает все ожидающие записи в операционной системе.

читать([length [, outbuf]])

Читает байты длины из потока ввода-вывода. Длина должна быть неотрицательным целым числом или нулем. Если длина равна нулю, он возвращает пустую строку ("").

Другие вопросы по тегам