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

ruby如何处理数组范围访问?

发布时间:2020-12-16 20:38:52 所属栏目:百科 来源:网络整理
导读:ruby-1.8.7-p174 [0,1][2..3] = [] ruby-1.8.7-p174 [0,1][3..4] = nil 在0索引设置中,索引2,3和4实际上超出了2项数组的范围,为什么这些返回不同的值? 解决方法 这是一个已知的丑角奇怪的角落.看看rdoc为 Array#slice的例子. 这个具体问题列为“特例” a =
ruby-1.8.7-p174 > [0,1][2..3]
 => [] 
ruby-1.8.7-p174 > [0,1][3..4]
 => nil

在0索引设置中,索引2,3和4实际上超出了2项数组的范围,为什么这些返回不同的值?

解决方法

这是一个已知的丑角奇怪的角落.看看rdoc为 Array#slice的例子.

这个具体问题列为“特例”

a = [ "a","b","c","d","e" ]
   a[2] +  a[0] + a[1]    #=> "cab"
   a[6]                   #=> nil
   a[1,2]                #=> [ "b","c" ]
   a[1..3]                #=> [ "b","d" ]
   a[4..7]                #=> [ "e" ]
   a[6..10]               #=> nil
   a[-3,3]               #=> [ "c","e" ]
   # special cases
   a[5]                   #=> nil
   a[5,1]                #=> []
   a[5..10]               #=> []

如果开始只是数组末尾的一个项目,那么它将返回一个空数组[].如果开始是超出这个范围,那么没有.有记录,虽然我不知道它的原因.

(编辑:李大同)

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

    推荐文章
      热点阅读