加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:30:08 所属栏目:百科 来源:网络整理
导读:我正在编写一种方法,它采用可变长度的数组并压缩并将它们转换为匹配的数组长度. 该方法接受的数组长度为50到126. ..并在调用时根据参数将它们转换下来.这意味着我正在动态访问方法调用中指定的范围.这也意味着我将访问不存在的数组的索引.除此之外,我访问的
我正在编写一种方法,它采用可变长度的数组并压缩并将它们转换为匹配的数组长度.

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

>> a = [0,1,2,3,4]
# => [0,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

虽然我同意这并不是很明显.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读