Ответы:
Ты о чем 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
Kernel.gets
попробуйте прочитать файлы, найденные в, ARGV
и запрашивает консоль, только если не ARGV
найдены. Чтобы заставить читать из консоли, даже если ARGV
не пусто используйте STDIN.gets
.
a.to_i
и b.to_i
могло быть лучше
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
Есть много способов получить информацию от пользователей. Мне лично нравится использовать метод получения. Когда вы используете get, он получает введенную вами строку , в том числе клавишу ENTER, которую вы нажали для завершения ввода.
name = gets
"mukesh\n"
Вы можете увидеть это в irb ; введите это, и вы увидите \ n, символ «новой строки», который производит клавиша ENTER: Введите
name = gets
вы увидите что-нибудь вроде «"mukesh\n"
Вы можете избавиться от надоедливого символа новой строки, используя метод chomp» .
Метод chomp возвращает строку, но без символа новой строки в конце. Красивый метод перекусить спаситель жизни.
name = gets.chomp
"mukesh"
Вы также можете использовать терминал для чтения ввода. ARGV - это константа, определенная в классе Object . Это экземпляр класса Array и имеет доступ ко всем методам массива. Поскольку это массив, даже если он является константой, его элементы можно без проблем изменять и очищать. По умолчанию 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]
Если вы хотите сделать интерактивную консоль:
#!/usr/bin/env ruby
require "readline"
addends = []
while addend_string = Readline.readline("> ", true)
addends << addend_string.to_i
puts "#{addends.join(' + ')} = #{addends.sum}"
end
Использование (при условии, что вы поместили приведенный выше фрагмент в summator
файл в текущем каталоге):
chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3
Используйте Ctrl + D
для выхода