以下是一些代码:
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
它运作得很好。知道为什么会这样吗?
答案 0 :(得分:0)
downcase!
会返回nil
。如果您将其重新分配给userinput
,那么userinput
可以像第一个示例中那样成为nil
。如果您使用downcase
,则错误将消失。在第二个示例中,您没有将downcase!
的结果重新分配给userinput
,因此userinput
不会被覆盖为nil
。