【发布时间】:2012-10-03 10:33:15
【问题描述】:
与this question 一样,当在其自己的赋值中使用未定义的局部变量时,它会被评估为nil。
x = x # => nil
但是当局部变量的名称与现有方法名称冲突时,就比较棘手了。为什么下面最后一个例子返回nil?
{}.instance_eval{a = keys} # => []
{}.instance_eval{keys = self.keys} # => []
{}.instance_eval{keys = keys} # => nil
【问题讨论】:
-
我猜,解析器/解释器中有一些捷径,它检查变量的自赋值。 pastie.org/4901726
标签: ruby local-variables self-reference