2013-09-22 43 views
-1

下面是一些代码:未定义的方法`include?'对于零:NilClass红宝石初学者

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

它给人的错误:未定义的方法`包括”对于零:NilClass

但是当我将其更改为:

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

它工作得很好。任何想法为什么这是?

回答

0

downcase!返回nil什么时候什么都不是。如果您将其重新分配到userinput,那么userinput可以变成nil,如第一个示例中所示。如果您使用downcase,那么错误将消失。在第二个示例中,您不重新指定downcase!userinput的结果,因此userinput不会被覆盖为nil

+0

感谢您的澄清。 –

相关问题