2012-11-21 27 views

回答

4

因为Ruby解释器“创造”一个地方当它看到一个任务时变量。

在第二种情况下,它还没有看到赋值,所以当解析表达式时变量不存在。

更确切地说,一个方法首先被解析为一个内部表示,然后,最终可能调用代码并实际执行。

变量在解析过程中“创建”。这实际上更像是一个声明问题,它只是意味着解释者意识到他们。它们不会被创造出来,直到周围的方法被某人调用时才被赋予空间或价值。

相关问题