/ / IO.readlines à un tableau multidimensionnel - ruby, chaîne, fichier-io, carte

IO.readlines à tableau multidimensionnel - ruby, chaîne, fichier-io, carte

Le but de mon programme est de lire dans un fichier comportant une grille de nombres délimités par des espaces. Pour traiter cela dans mon programme, j'ai besoin que ce soit un tableau multidimensionnel. J'ai essayé de le faire en:

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

Ce code, une fois exécuté, ne renverra que mon tableau, mes chaînes et mon "n" d'origine. J'ai pu obtenir l'effet souhaité en:

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

Je préférerais muter le tableau d'originecela a plutôt créé un nouveau. Comment mapper le tableau pour obtenir les résultats souhaités? Je suis vraiment nouveau chez Ruby et j'apprécie sa POO "ness. Merci pour l'aide.

Réponses:

1 pour la réponse № 1

Il suffit de réaffecter le tableau d'origine

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

Ou utilisez un destructeur map!

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