在ruby数组访问中使用范围

时间:2011-07-19 14:03:36

标签: ruby arrays indexing

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

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

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

1 个答案:

答案 0 :(得分:5)

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

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

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