Как объединить целочисленный массив в одно целое в Ruby - PullRequest
8 голосов
/ 09 сентября 2011

Учитывая массив [1,2,3], существует ли метод (кроме простого итерации) для преобразования его в целое число 123?

Ответы [ 3 ]

13 голосов
/ 09 сентября 2011

Просто присоедините массив и преобразуйте полученную строку в целое число:

[1,2,3].join.to_i
9 голосов
/ 09 сентября 2011

Если вы хотите избежать преобразования в и из строки, вы можете использовать inject:

[1,2,3].inject{|a,i| a*10 + i}
#=> 123
6 голосов
/ 09 сентября 2011

Лично я бы использовал

Integer([1,2,3].join, 10) #=> 123

, поскольку он имеет приятный побочный эффект - генерировать исключение, с которым вы можете иметь дело, если у вас есть нечисловые элементы массива:

>> Integer([1,2,'a'].join, 10) # ArgumentError: invalid value for Integer: "12a"

Сравните это с to_i:

>> [1,2,'a'].join.to_i #=> 12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...