未定义的方法`include?'为零:NilClass红宝石初学者

时间:2013-09-22 17:55:00

标签: ruby

以下是一些代码:

print "What is your name?"
userinput = gets.chomp.downcase!
if userinput.include? "s"
  print "I found it"
else
  print "found nothing"
end

它给出了错误:未定义的方法`include?'为零:NilClass

但是当我把它改为:

print "What is your name?"
userinput = gets.chomp
userinput.downcase!
if userinput.include? "s"
  print "I found it"
else
  print "found nothing"
end

它运作得很好。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

当没有任何内容可用时,

downcase!会返回nil。如果您将其重新分配给userinput,那么userinput可以像第一个示例中那样成为nil。如果您使用downcase,则错误将消失。在第二个示例中,您没有将downcase!的结果重新分配给userinput,因此userinput不会被覆盖为nil