【发布时间】:2016-04-24 21:36:23
【问题描述】:
例如:
nil[1] #=> NoMethodError
nil[1]=1 #=> nil
这不仅仅是语法,变量也一样:
a = nil
a[1] #=> NoMethodError
a[1]=1 #=> nil
奇怪的是:
nil.method(:[]=) #=> NameError
[].method(:[]=) #=> #<Method...>
Ruby 2.3.0p0
【问题讨论】:
-
无法在 Ruby 2.2.4 上重现。可能是您的版本中的新功能或错误?
-
奇怪...也许这是一个错误。
-
我只能在 Ruby 2.3.0 中重现这一点,我认为这是一个错误。可能值得检查bug tracker for this issue。
-
可能已经修复了。无法在 ruby 2.3.0p71(2016-03-30 修订版 54426)上复制。
-
我相信修复已报告here(“意外的安全呼叫”)。 larsch,你是怎么偶然发现的?各位,举起你的眼镜!一个可疑的错误实际上是一个错误并不是每天都有。