ruby-1.8.7-p174 > [0,1][2..3]
=> []
ruby-1.8.7-p174 > [0,1][3..4]
=> nil
Run Code Online (Sandbox Code Playgroud)
在0索引设置中,索引2,3和4实际上都超出了2项数组的范围,为什么它们会返回不同的值?
目标是从['a','b','c']最后开始并最终结束{'a'=>{'b'=>{'c'=>{}}}}
所以,得到我的方位,我这样做:
['a','b','c'].inject({}){|h,v| h.update(v => {})}
# => {"a"=>{}, "b"=>{}, "c"=>{}}
Run Code Online (Sandbox Code Playgroud)
然后想一想,如果我实际传递结果哈希,它将递归并嵌套,但是:
['a','b','c'].inject({}){|h,v| h.update(v => {}); h[v]}
# => {}
Run Code Online (Sandbox Code Playgroud)
为什么是这样?知道如何在优雅的单线程中实现理想的效果吗?