2

私のプログラムの目標は、空白で区切られた数字のグリッドを持つファイルを読み取ることです。私のプログラムでこれを処理するには、多次元配列である必要があります。私はこれをやろうとしました:

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

このコードを実行すると、元の配列、文字列、および '\n' のみが返されます。次の方法で目的の効果を得ることができました。

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

新しい配列を作成するのではなく、元の配列を変更することをお勧めします。配列をマップして目的の結果を得るにはどうすればよいですか? 私は Ruby を初めて使用し、その OOP 性を楽しんでいます。助けてくれてありがとう。

4

1 に答える 1

1

元の配列を再割り当てするだけです

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

または破壊的なものを使用してくださいmap!

arr.map! { |string| string.chomp.split.map { |sub_str| sub_str.to_i } } 
于 2013-05-21T19:15:33.220 に答える