0
我一直認爲很好的ruby特性是nil
默認用於索引/哈希查找,例如,Ruby/Rails沒有使嵌套索引安全嗎?
[1, 2, 3][42] # => nil
{ foo: :bar }[:spam] # => nil
有,爲什麼在Ruby的設計或Ruby on Rails的核心擴展,這還沒有擴展到嵌套查詢工作(而不是拋出NoMethodError: undefined method '[]' for nil:NilClass
)理由嗎?
例如:
{ foo: [1, 2, 3] }[:bar][0][:baz] # => nil
[[[]]][12][1][1] # => nil
在我,也許Nieve酒店,瞭解它是那樣簡單:
class NilClass
def [](_); end
end
看看它做你想做的嘗試命令。 – Doon 2014-11-14 22:24:59
我知道'try'。由於嵌套查找非常普遍,所以我想知道爲什麼這種情況沒有被優化。 – mjgpy3 2014-11-14 22:26:15
你會如何區分'h [:k1] [:k2]'和'nil [:k2]'之間的區別?你提出的'NilClass'補丁太過分了,它會以方便的名義隱藏缺陷。 – 2014-11-14 22:39:01