【问题标题】:Why does Ruby Array slicing sometimes returns nil and sometimes returns empty Array? [duplicate]为什么 Ruby Array slicing 有时返回 nil 有时返回空 Array? [复制]
【发布时间】:2017-01-06 19:26:53
【问题描述】:

我在做 ruby​​ koans 时遇到了这个问题。给定这个数组:

array = [1, 2, 3, 4]

array[4, 0] 等于 []。但是,array[5, 0] 等于 nil。

4 和 5 都超出索引。为什么他们返回不同的东西?

【问题讨论】:

    标签: arrays ruby


    【解决方案1】:

    Array#slice(start,length) 的第一个参数是索引之间应该开始切片的位置:

    array = [1, 2, 3, 4]
    # elements            : [   1   2   3   4   ]
    #                         ↑   ↑   ↑   ↑   ↑
    # slice start indices :   0   1   2   3   4
    

    slice(0,_) 从1 左侧开始,slice(3,_) 从4 左侧开始,slice(4,_) 从最后一个可能的位置开始:4 右侧。

    slice(4,0) 还在array 里面,是4 右边的空数组。

    slice(5,0) 不再在array 中,而是nil。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      • 2018-10-15
      • 2013-02-17
      • 2015-01-16
      • 1970-01-01
      相关资源
      最近更新 更多