gpt4 book ai didi

ruby - Ruby 中是否存在某种看不见的数组终止?

转载 作者:数据小太阳 更新时间:2023-10-29 07:31:21 25 4
gpt4 key购买 nike

我正在编写一种方法,它采用可变长度的数组并将其压缩并转换为匹配的数组长度。

该方法接受 50 到 126 之间任意长度的数组。 .. 并在调用时根据参数将它们向下转换。这意味着我正在动态访问在方法调用时指定的范围。这也意味着我将访问不存在的数组索引。除此之外,我正在访问的范围可能是相等的。这就是我的问题所在:与任何其他不存在的索引相反,在使用范围访问数组时,数组的终止口袋似乎表现得很奇怪

>> a = [0, 1, 2, 3, 4]
# => [0, 1, 2, 3, 4]

>> a[5]
# => nil

>> a[4..4]
# => [4]

>> a[6..6]
# => nil

>> a[5..5]
# => [] <------GGRAAAAAhhh!!! Thought you were nil

>> a[5..7]
# => [] <-------you too

>> a[6..7]
# => nil <-----but you are behaving

有人知道为什么会这样吗?这是针对我的代码的空数组的额外测试,但在我的 Rails 应用程序中一整天都在追查这个错误后,我更加好奇了。 FWIW 我在 Mac OS X 上运行 Ruby 1.8.6,补丁级别 114

最佳答案

看起来很奇怪,但这是一个记录在案的行为: http://www.ruby-doc.org/core/classes/Array.html#M002183

关于ruby - Ruby 中是否存在某种看不见的数组终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/857702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com