Использование диапазона в доступе к массиву ruby - PullRequest
2 голосов
/ 19 июля 2011

Я нашел следующий код в базе доморощенных кодов:

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

Очевидно, это удалит элемент массива (self), если элемент начинается с '-'. Мой вопрос заключается в том, почему на земле вам нужно указывать 0-й элемент arg таким образом, arg [0..0], а не просто указывать arg [0] ??

1 Ответ

5 голосов
/ 19 июля 2011

Поскольку версии Ruby до 1.9 возвращают целые числа (коды символов), а не символы, из одноэлементного индексирования в строки.Вот так:

> "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] в вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...