Ruby变量初始化

时间:2011-02-24 23:13:48

标签: ruby variables

在下面的代码中有一个执行路径,在测试之前没有设置“bar”,在Ruby中这样做是否安全? “bar”会默认初始化吗?

if foo
  bar = true
end

if bar
  puts "true"
end

1 个答案:

答案 0 :(得分:7)

,这是安全的,因为在引用未初始化的本地时可能发生的最坏情况是将引发 NameError 异常。

实际上,你的实际情况有点特殊。由于解析器在引用之前会看到bar,因此即使NameError为false,该方法也引发foo,而是bar将为nil