/ / IO.readlines do multidimenzionálneho poľa - rubín, reťazec, súbor-io, mapa

IO.readlines do multidimenzionálneho poľa - rubín, reťazec, súbor-io, mapa

Cieľom môjho programu je čítať v súbore, ktorý má mriežku čísel vymedzenú bielym priestorom. Ak chcete toto spracovať v mojom programe, musím to byť multidimenzionálne pole. Pokúsil som sa to urobiť:

arr = IO.readlines("Example.txt")
arr.map { |string| string.chomp.split.map { |sub_str| sub_str.to_i } }

Tento kód, keď bežal, vráti iba pôvodné pole, reťazce a "n". Dosiahol som požadovaný účinok:

arr = IO.readlines("Example.txt")
int = Array.new
arr.each { |string| int << string.chomp.split.map { |sub_str| sub_str.to_i } }

Radšej by som zmenil pôvodné poleskôr vytvoril nový. Ako môžem mapovať pole získať požadované výsledky? Ruby som naozaj nový a užívam si jeho OOP. Vdaka za pomoc.

odpovede:

1 pre odpoveď č. 1

Stačí priradiť pôvodné pole

arr = arr.map { |string| string.chomp.split.map { |sub_str| sub_str.to_i } }

Alebo použite deštruktívne map!

arr.map! { |string| string.chomp.split.map { |sub_str| sub_str.to_i } }