【发布时间】:2010-07-21 03:10:04
【问题描述】:
可能重复:
Why does array.slice behave differently for (length, n)
在 Ruby koan "about_arrays.rb", test_accessing_array_elements 中有两个相似的开始/长度切片语句访问数组的各个部分。参考下面的摘录。两者都应该“超出范围”,但一个返回一个空数组,另一个返回 nil。这与文档 ruby doc 中的可能结果相匹配。为什么会这样?
irb(main):221:0> array = [:peanut, :butter, :and, :jelly]
=> [:peanut, :butter, :and, :jelly]
irb(main):222:0> array[4,0]
=> []
irb(main):223:0> array[5,0]
=> nil
irb(main):224:0>
irb(main):224:0> array[4]
=> nil
irb(main):225:0> array[5]
=> nil
irb(main):226:0>
【问题讨论】:
-
Chris 是对的,why-does-array-slice-behave-differently-for-length-n 的副本
-
我本周在运行 Ruby koans 时遇到了这个问题,最后在 irc 上的#ruby 中询问了这个问题。房间的共识是“错误特征”或“设计错误”,这是值得的。 (这种行为记录在
Array#slice的文档中,尽管“特殊情况”的描述并不令人鼓舞。)
标签: ruby