Почему сравнение строк в Ruby всегда возвращает false? - PullRequest
0 голосов
/ 15 мая 2011

Я использую следующее, чтобы проверить, является ли ответ на поставленный вопрос истинным или ложным:

when "new" 
  n = nums[rand(nums.length)]
  puts "Question:"
  puts qs[n].question
  torf = gets.downcase.to_str.eql? qs[n].answer.downcase.to_str
  puts torf

Но результат torf всегда ложен, даже если поставлен правильный ответ.Чего мне не хватает?

1 Ответ

4 голосов
/ 15 мая 2011

gets вернет введенную строку плюс символ новой строки, поэтому вам нужно будет удалить его.Поскольку это строка, вам не нужно запускать to_str для результата.

 torf = gets.downcase.chomp.eql? qs[n].answer.downcase.to_s
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...