Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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
在启动大于(Array.size-1)的索引时,对ruby数组[]方法结果的混淆_Ruby_Arrays_Null_Slice - Fatal编程技术网

在启动大于(Array.size-1)的索引时,对ruby数组[]方法结果的混淆

在启动大于(Array.size-1)的索引时,对ruby数组[]方法结果的混淆,ruby,arrays,null,slice,Ruby,Arrays,Null,Slice,给定 数组[start,length]的Doco表示,“如果索引(或起始索引)超出范围,则返回nil。” 数组[4,0]如何返回数组,而不是nil [编辑]看起来这已经出现了:请参见 对我来说,这个解释看起来有点像挥手,但我可以接受,ruby在这里违反了PLS。我相信文档中没有正确描述行为。但直觉上,巴哈维奥是有道理的。正如可以通过索引数组[0,0]在所有元素之前,在数组的开头定义一个0元素“小条”,也可以通过索引数组[array.size,0]在数组的末尾对称地获得一个0元素“小条”。另一个例

给定

数组[start,length]的Doco表示,“如果索引(或起始索引)超出范围,则返回nil。”

数组[4,0]如何返回数组,而不是
nil

[编辑]看起来这已经出现了:请参见


对我来说,这个解释看起来有点像挥手,但我可以接受,ruby在这里违反了PLS。

我相信文档中没有正确描述行为。但直觉上,巴哈维奥是有道理的。正如可以通过索引
数组[0,0]
在所有元素之前,在数组的开头定义一个0元素“小条”,也可以通过索引
数组[array.size,0]
在数组的末尾对称地获得一个0元素“小条”。另一个例子是,直观地说,通过索引数组的整个范围(即
array[0,array.size]
),始终可以获取数组的副本;但是,如果在起始索引等于数组大小时返回nil,则空数组将无法执行此操作。

的可能重复项
array = [:a,:b,:c,:d] # with 4 elements:

array[3] => :d  # zero-based indices, I get that
array[4] => nil
array[5] => nil

array[3,0] => [] # OK since I asked for a slice with zero elements
array[5,0] => nil # OK
array[4,0] => []  # Hunh??