为什么这段代码不起作用?
b if b = true
错误: undefined local variable or method `b'
但这样做:
if b = true
    b
end
它们不应该是一样的吗?
Mic*_*ile 16
这个问题问得好.它与Ruby中的变量范围有关.
以下是Matz关于Ruby bug跟踪器的帖子:
局部变量范围确定为向下,从左到右.因此,如果是主体,则在if修饰符的条件下首先分配的局部变量在左侧无效.这是一个规范.