为什么比较Ruby中的字符串总是返回false?
问题描述:
我使用以下方法来检查的答案,提出问题,即是否是真还是假:为什么比较Ruby中的字符串总是返回false?
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
是即使正确答案放在始终为false。我错过了什么?
答
gets
将返回输入的字符串加上换行符charcter,因此您需要将其删除。因为它是一个字符串,所以你不需要在结果上运行to_str。
torf = gets.downcase.chomp.eql? qs[n].answer.downcase.to_s
不好的问题。你有很多没有解释的变量/方法(nums,qs,question,answer)。你也没有用'end'关闭'when'。 – sawa 2011-05-15 20:10:28