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'ness。谢谢您的帮助。

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 回答