Использование интерактивной программы Ruby, закрывается при вводе - PullRequest
0 голосов
/ 15 декабря 2018

Я последовал примеру, чтобы начать изучать Ruby.Следующий код работает внутри моего текстового редактора (код Visual Studio).Но когда я открываю файл с помощью интерактивной программы ruby.Кажется, он не работает.

puts "Hello there! Please enter a number to square: "
number = gets.chomp.to_i

def squared(number)
        squared = number * number
        return squared.to_s
end

puts "Your number is: " + number.to_s
puts "Your number squared is: " + square(number)

Он печатает начальное «Привет! Пожалуйста, введите число в квадрат:» Но как только я наберу число и нажму клавишу ввода, программа внезапно закроется.

1 Ответ

0 голосов
/ 15 декабря 2018

Проблема в том, что вы дважды щелкаете файл example.rb, который открывается в cmd.exe, а затем автоматически закрывается, когда он завершается, выполняя example.rb.Это нормальное поведение для Windows: cmd.exe автоматически закрывается после запуска любого приложения, которое его вызвало.

Вместо этого вы хотите вручную открыть командную строку (cmd.exe), а затем запустить приложение с помощью ruby example.rb.Это будет держать cmd.exe открытым после завершения работы вашего приложения, потому что cmd.exe не было вызвано вашим приложением;он был вызван вами вручную.

Это позволит вам увидеть вывод Your number is: после завершения работы приложения.Этот вывод все еще печатается, когда вы дважды щелкаете example.rb, но окно закрывается так быстро, что вы его не видите.

Кроме того, в вашем приложении есть ошибки.В частности, вы пытаетесь вызвать square(number), когда вам следует звонить squared(number).

Вот ваш код, который немного очищен:

puts 'Hello there! Please enter a number to square: '
number = gets.chomp.to_i

def squared(number)
  number * number
end

puts "Your number is: #{number}"
puts "Your number squared is: #{squared(number)}"

Обратите внимание на использование одиночногокавычки для строк, которые не включают строковую интерполяцию , неявный возврат для метода squared и строковую интерполяцию для вызовов puts.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...