Создать диапазон строк из конечных значений - PullRequest
5 голосов
/ 01 октября 2011

Я использую IRB.

Я пишу код ниже.
"ax".."bc"
Я ожидаю
"ax""ay""az""ba"bb""bc"

Но результат просто
"ax".."bc"

Как мне исправить? Спасибо.

Ответы [ 3 ]

9 голосов
/ 01 октября 2011
> puts ("ax".."bc").to_a
ax
ay
az
ba
bb
bc
3 голосов
/ 01 октября 2011

Диапазон 'ax' .. 'bc' действительно представляет ожидаемые вами значения, но он не генерирует их до тех пор, пока это действительно не требуется (как способ сэкономить время и пространство в случае, если вы не в конечном итоге используете каждое значение). Вы можете получить к ним доступ через интегратор или преобразование в массив:

r = 'ax' .. 'bc' # => "ax" .. "bc"
r.class # => Range
r.to_a # => ["ax", "ay", "az", "ba", "bb", "bc"]
r.to_a.class # => Array
r.each {|x| puts x}
ax
ay
az
ba
bb
bc
2 голосов
/ 01 октября 2011

Диапазон - это встроенная конструкция, внутри которой хранятся начальная и конечная точки (и является ли это конечным включенным диапазоном) для эффективности.Таким образом, IRB просто покажет вам буквальное значение.

Что вы хотите сделать?

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