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

前端之家收集整理的这篇文章主要介绍了ruby如何处理数组范围访问?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. ruby-1.8.7-p174 > [0,1][2..3]
  2. => []
  3. ruby-1.8.7-p174 > [0,1][3..4]
  4. => nil

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

解决方法

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

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

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

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

猜你在找的Ruby相关文章