从字符串数组中创建对象数组

时间:2015-05-19 17:58:08

标签: ruby jruby

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

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

我可以使用字符串

创建一个对象
my_foo = Foo.new("some_text")

我需要创建一个由字符串Foo数组构成的对象数组contents。我该怎么办?

2 个答案:

答案 0 :(得分:4)

值得一提的是,File.readlines会将所有内容读入内存,这可能会导致大文件出现内存问题。考虑使用此代码:

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

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

答案 1 :(得分:3)

这是你想要的吗?

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