/ / Ako zreťaziť celé číslo na jedno celé číslo v Ruby - ruby, polia, zreťazenie

Ako zlučovať celú oblasť s jedným celočíselným číslom v Ruby - ruby, poliach, zlučovanie

Existuje pole (1,2,3), existuje metóda (iná ako iba iterácia) na jeho prevod na celé číslo 123?

odpovede:

8 pre odpoveď č. 1

Ak 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