2015-05-19 88 views
1

我有一个从文件中读取的字符串数组。从字符串数组中创建对象的数组

contents = File.readlines('foo.txt') 

我可以用绳子

my_foo = Foo.new("some_text") 

我需要通过字符串contents的阵列制成的物体Foo数组创建一些对象。我该怎么做?

回答

4

这可能是值得一提,那File.readlines将读到的一切到内存中,这可能会使大文件存储问题。请考虑使用此代码:

File.foreach('foo.txt').map do |line| 
    Foo.new(line) 
end 

它逐行读取文件中的行,几乎一样快,你的代码,但更安全。

+2

为什么不'foos = File.foreach('foo.txt')。map {| line | Foo.new(line)}'而不是声明'Array'并推入? – engineersmnky

+0

@engineersmnky你说得对,地图比较好。更新 – djaszczurowski

3

这是你要找的吗?

contents.map {|i| Foo.new i}

相关问题