Чтение ввода с консоли в Ruby?
Я хочу написать простую программу A+B в ruby, но я понятия не имею, как работать с консолью.
4 ответа:
вы говорите о
gets
?puts "Enter A" a = gets.chomp puts "Enter B" b = gets.chomp c = a.to_i + b.to_i puts c
что-то подобное?
обновление
Kernel.gets
пытается прочитать параметры, найденные вARGV
и только просит утешить, если нетARGV
нашли. Заставить читать с консоли даже еслиARGV
не пустое использованиеSTDIN.gets
вы также можете передавать параметры через командную строку. Аргументы командной строки хранятся в массиве ARGV. таким образом, ARGV[0] - это первое число, а ARGV[1] - второе число
#!/usr/bin/ruby first_number = ARGV[0].to_i second_number = ARGV[1].to_i puts first_number + second_number
и вы называете это
% ./plus.rb 5 6 ==> 11
есть много способов, чтобы принять вход от пользователей. Мне лично нравится с помощью метода получает. Когда вы используете gets, он получает строка что вы набрали, и что включает в себя введите клавиша, которую вы нажали чтобы закончить ваш ввод.
name = gets "mukesh\n"
вы можете увидеть это в irb; введите это, и вы увидите \n, который является символом "новой строки", который создает клавиша ENTER: Типа
name = gets
вы увидите что-то вроде"mukesh\n"
Вы можете избавиться от надоедливых новая строка символ с помощью chomp метод.метод chomp возвращает вам строку, но без завершающей новой строки. Прекрасный способ гусеничка жизни Спасителя.
name = gets.chomp "mukesh"
вы также можете использовать терминал для считывания входных данных. ARGV - это константа, определенная в объекткласс. Это экземпляр массив класс и имеет доступ к все методы массива. Поскольку это массив, даже если он является константой, его элементы могут быть изменены и очищены без проблем. По умолчанию Ruby захватывает все аргументы командной строки, переданные программе Ruby (разделенные пробелами) при вызове двоичного файла командной строки и сохраняет их в виде строк в массив ARGV.
при написании внутри вашей программы Ruby,ARGV примет команду командной строки, которая выглядит так это:
test.rb hi my name is mukesh
и создать массив, который выглядит так:
["hi", "my", "name", "is", "mukesh"]
но, если я хочу передать ограниченный ввод, то мы можем использовать что-то вроде этого.
test.rb 12 23
и использовать эти входные данные, как это в вашей программе:
a = ARGV[0] b = ARGV[1]