Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby koan-关于数组-测试访问数组元素数组[5,0]_Ruby - Fatal编程技术网

Ruby koan-关于数组-测试访问数组元素数组[5,0]

Ruby koan-关于数组-测试访问数组元素数组[5,0],ruby,Ruby,可能重复: 在Ruby koan的“about_array.rb”中,test_访问_array_元素有两个类似的start/length slice语句访问数组的各个部分。参考下面的摘录。两者都应该“超出范围”,但一个返回空数组,另一个返回nil。这与文档中的可能结果相匹配。为什么会这样 irb(main):221:0> array = [:peanut, :butter, :and, :jelly] => [:peanut, :butter, :and, :jelly] irb

可能重复:

在Ruby koan的“about_array.rb”中,test_访问_array_元素有两个类似的start/length slice语句访问数组的各个部分。参考下面的摘录。两者都应该“超出范围”,但一个返回空数组,另一个返回nil。这与文档中的可能结果相匹配。为什么会这样

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>

我认为它是指元素之间的间隙而不是元素本身的一些数组方法,即0是第一个元素之前的空间,1是第一个和第二个元素之间的空间。通过这种方式考虑,该操作更有意义,因为4是第四个元素之后的间隙,该元素仍然在数组中,因此此位置的零元素是空数组

您可以用同样的方式来考虑insert方法(尽管文档中明确说明了其他方法)


然而,这可能是一种心理上的诡计,而不是一种解释——尽管如此,它可能会帮助某些人

Chris是对的,这周我在运行Ruby koans时遇到了这个问题,最后在Ruby on irc中询问了这个问题。房间里的一致意见是“不完美”或“设计上的缺陷”,这是值得的。(虽然“特殊情况”的描述并不十分令人鼓舞,但在
数组#切片
的文档中记录了这种行为。)