【发布时间】:2011-10-08 13:43:21
【问题描述】:
我在自制代码库中找到了以下代码:
reject{|arg| arg[0..0] == '-'}
显然,如果元素以“-”开头,这将删除数组的元素(self)。我的问题是为什么你需要以这种方式指定 arg 的第 0 个元素 arg[0..0] 而不仅仅是指定 arg[0] ??
【问题讨论】:
我在自制代码库中找到了以下代码:
reject{|arg| arg[0..0] == '-'}
显然,如果元素以“-”开头,这将删除数组的元素(self)。我的问题是为什么你需要以这种方式指定 arg 的第 0 个元素 arg[0..0] 而不仅仅是指定 arg[0] ??
【问题讨论】:
因为 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] 之间没有区别。
【讨论】: