【问题标题】:Why Ruby array[array.length, count] returns []? [duplicate]为什么 Ruby array[array.length, count] 返回 []? [复制]
【发布时间】:2011-09-23 04:54:15
【问题描述】:

可能重复:
Is there some kind of unseen Array termination in Ruby?
Array slicing in Ruby: looking for explanation for illogical behaviour (taken from Rubykoans.com)

a = %w[a b c]
a[3, 1]    # => []
a[4, 1]    # => nil

谁能解释为什么 a[3, 1] 返回 []?为什么不改为nil

谢谢。

【问题讨论】:

  • 你的意思是array[array.index, array.length]?你的标题有点混乱。
  • @lemoncider 是的,标题有点混乱,但我只想指定 array.index 等于 array.length

标签: ruby arrays


【解决方案1】:

好吧,看起来Ruby core documentation 只是将其标记为“特殊情况”。 根据 The Ruby Programming Language(O'Reilly,2008),对此案例的评论是:

a[arr_len, len] #=> [], empty array right at the end
a[arr_len + 1, len] #=> nil, nonthing beyond that

没有给出进一步的解释。所以我认为你应该只记住“特殊情况”。

【讨论】:

    猜你喜欢
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 2020-08-03
    • 2015-01-16
    相关资源
    最近更新 更多