Existuje pole (1,2,3), existuje metóda (iná ako iba iterácia) na jeho prevod na celé číslo 123?
odpovede:
8 pre odpoveď č. 1Ak sa chcete vyhnúť prevedeniu na a z reťazca, môžete použiť inject
:
[1,2,3].inject{|a,i| a*10 + i}
#=> 123
10 pre odpoveď č. 2
Stačí sa spojiť s poľom a výsledný reťazec previesť na celé číslo:
[1,2,3].join.to_i
6 pre odpoveď č. 3
Osobne by som použil
Integer([1,2,3].join, 10) #=> 123
pretože má pekný vedľajší efekt, keď hodí výnimku, s ktorou si môžete poradiť, ak máte nečíselné prvky poľa:
>> Integer([1,2,"a"].join, 10) # ArgumentError: invalid value for Integer: "12a"
Porovnajte to s to_i
:
>> [1,2,"a"].join.to_i #=> 12