Как на самом деле работает получение под капотом
Используется глобальная переменная $stdin
. Она представляет текущий стандартный ввод.
Метод gets
, взаимодействует с потоком ввода на вашем компьютере (который подключен к вашей операционной системе), получая данные из глобальной переменной $stdin и присваивая их своей переменной, при этом возвращает сохраненное значение с добавлением в конце символа новой строки.
irb(main):005:0> name = gets
andressa
=> "andressan"
Мы можем избавиться от символа новой строки, вызвав метод chomp
.
irb(main):006:0> name = gets.chomp
andressa
=> "andressa"
При работе с файлами возвращается nil
при достижении конца файла.
gets
получает входные данные в строковом формате, поэтому если вы собираетесь работать, например, с целыми числами, вам придется сначала преобразовать их в int.
irb(main):009:0> number = gets.chomp
34
=> "34"
irb(main):010:0> number.class
=> String