Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 数组[array.size..-1]不';t返回零_Ruby_Arrays - Fatal编程技术网

Ruby 数组[array.size..-1]不';t返回零

Ruby 数组[array.size..-1]不';t返回零,ruby,arrays,Ruby,Arrays,当Range用作Array下标时,我注意到一个奇怪的行为。(至少对我来说很奇怪。) 我以为a[3..-1]返回nil,但不知怎的,它返回了[]a[-3..-4]还返回[] 有谁能解释一下,当我使用范围的边缘值时,它为什么返回[]?因为当range.begin==array.length时,它总是返回[]。这在以下情况中被称为“特殊情况”: 谢谢,我没有注意到文档中有注释。我可以问一下为什么这个案子会被视为特殊案件吗?@Tetsu,这只是一种方便,让你可以更轻松地做某些事情。例如,假设您想编写一个

Range
用作
Array
下标时,我注意到一个奇怪的行为。(至少对我来说很奇怪。)

我以为
a[3..-1]
返回
nil
,但不知怎的,它返回了
[]
a[-3..-4]
还返回
[]


有谁能解释一下,当我使用范围的边缘值时,它为什么返回
[]

因为当
range.begin==array.length
时,它总是返回
[]
。这在以下情况中被称为“特殊情况”:


谢谢,我没有注意到文档中有注释。我可以问一下为什么这个案子会被视为特殊案件吗?@Tetsu,这只是一种方便,让你可以更轻松地做某些事情。例如,假设您想编写一个方法
m
,该方法返回一个数组,该数组包含给定数组的最后
n
元素,例如
0ah,现在我明白为什么了。谢谢可能重复的
a = [1,2,3]
=> [1, 2, 3]
a[3]
=> nil
a[3..-1]
=> []
a[4]
=> nil
a[4..-1]
=> nil
a = [ "a", "b", "c", "d", "e" ]
# special cases
a[5]                   #=> nil
a[6, 1]                #=> nil
a[5, 1]                #=> []
a[5..10]               #=> []