Ruby变量赋值为false但是为零

时间:2011-05-18 16:17:50

标签: ruby-on-rails ruby

赋值语句如下所示:

my_var = false

打破下一行,调试器显示'my_var',Type = NilClass,value = nil!这怎么可能?

3 个答案:

答案 0 :(得分:3)

您是否在没有任何调试器的情况下直接检查了my_var?调试器可能会混淆或只显示令人困惑的结果。

答案 1 :(得分:2)

您的代码段的目标对象可能已定义了“setter方法”,因此看起来您正在分配给“my_var”但实际上正在调用“my_var=”方法。看看你的代码是否有这样的定义:

def my_var=(x)
  # ...
end

如果是这样,您需要更改本地“my_var”变量或setter方法的名称。您也可以通过单击调用“my_var = false”的行进行验证。

答案 2 :(得分:1)

我发现这非常有用True, False and Nil