Відповіді:
Ви про це говорите 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. Під час використання 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для виходу