Відповіді:
Ви про це говорите 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
для виходу