2011-07-19 62 views
2

使用的范围,我发现在自制代码库以下代码:在红宝石数组访问

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

显然如果将该元件与启动此将移除阵列(个体)的元件“ - ”。我的问题是为什么你需要以这种方式指定arg的第0个元素,arg [0..0]而不是只指定arg [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]之间没有什么区别。

+0

优秀!谢谢! – ennuikiller