我在自制代码库中找到了以下代码:
reject{|arg| arg[0..0] == '-'}
显然,如果元素以“-”开头,这将删除数组中的元素(自身)。我的问题是为什么你需要以这种方式指定 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 开始,在您的示例中 unsing arg[0..0]
和 arg[0]
之间没有区别。
关于ruby - ruby 数组访问中范围的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6748430/