p b #undefined local variable or method b for main:Object
a = nil
if a and (b=3)
do_something_with b
end
p b # nil
为什么B如果块的执行后,所获得的价值nil
,而预期的结果将是undefined local variable or method b for main:Object
,是否红宝石初始化事先存储所有的变量nil
?变量中获得初始化为零
同样的情况下,用下面的代码
if nil
bb = 10
end
p bb # nil
有人请扔在红宝石如何初始化变量,什么是在这种情况下,要对一些轻,感谢
[为什么Ruby似乎会从case语句中提取变量声明,即使该代码路径未执行?](http://stackoverflow.com/questions/12928050/why-does-ruby-seem - 从一个案件内的声明 - e) – sawa 2013-03-06 06:44:40