Начальный пример ruby ​​не производит вывод - PullRequest
0 голосов
/ 16 марта 2012

Я учусь по книге Стива Хольцнера, начинающей ruby ​​on rails, и пробую код из книги:

#!/usr/bin/env ruby
until($_ != "q")
  puts "Running"
  print "Enter q to quit: "
  gets
  chomp
end

Когда я запускаю Программу, ничего не происходит!

Ответы [ 5 ]

4 голосов
/ 16 марта 2012

$_ равно nil при запуске процесса.Таким образом, условие until немедленно выполняется и даже не запускает цикл один раз.

2 голосов
/ 16 марта 2012

Исправил твой код, бра

#!/usr/bin/env ruby
foo = ''
while foo != 'q'
  puts "Running"
  print "Enter q to quit: "
  foo = gets 
  foo.chomp!
end
2 голосов
/ 16 марта 2012

$_ вернется nil при запуске этой программы. Поскольку nil равно! = До q, программа даже не запускается. Это выйдет с nil.

2 голосов
/ 16 марта 2012

должно быть until($_ == "q")

То, что у вас есть, предполагает, что оно работает до тех пор, пока не будет введено что-либо, кроме "q". Таким образом, он выйдет, когда что-нибудь наберется, и если наберется q, то он продолжится.

2 голосов
/ 16 марта 2012

Поскольку вы хотите повторять до тех пор, пока введенная буква не будет q, ваша первая строка должна быть;

until($_ == "q")

Прямо сейчас, $_ не установлен на q при первом входе, поэтому он немедленно выйдет из цикла.

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