如果vs如果行的结尾行为不一样呢?

前端之家收集整理的这篇文章主要介绍了如果vs如果行的结尾行为不一样呢?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么这个代码不工作?
b if b = true

错误:未定义的局部变量或方法`b’

但是这样做:

if b = true
    b
end

他们不应该是一样的吗?

解决方法

这是一个很好的问题.它与Ruby中变量的范围有关.

这是一个post by Matz on the Ruby bug tracker关于这个:

local variable scope determined up to down,left to right. So a local variable first assigned in the condition of if modifier is not effective in the left side if body. It’s a spec.

猜你在找的Ruby相关文章