【问题标题】:Use of range in ruby array access在 ruby​​ 数组访问中使用范围
【发布时间】:2011-10-08 13:43:21
【问题描述】:

我在自制代码库中找到了以下代码:

reject{|arg| arg[0..0] == '-'}

显然,如果元素以“-”开头,这将删除数组的元素(self)。我的问题是为什么你需要以这种方式指定 arg 的第 0 个元素 arg[0..0] 而不仅仅是指定 arg[0] ??

【问题讨论】:

    标签: ruby arrays indexing


    【解决方案1】:

    因为 1.9 之前的 Ruby 版本从单元素索引到字符串中返回 整数(字符代码),而不是字符。像这样:

    > "abc"[0]
    #=> 97
    > "abc"[0..0]
    #=> "a"
    > "abc"[0] == 'a'
    #=> false
    > "abc"[0..0] == 'a'
    #=> true
    

    从 Ruby 1.9 开始,在您的示例中取消 arg[0..0]arg[0] 之间没有区别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      相关资源
      最近更新 更多