【发布时间】:2018-01-08 18:25:46
【问题描述】:
我想在 Ruby rake 中创建一个名为 ARRAY 的数组,其中 infile(“infile.txt”)的每一行都是数组的一个元素。 到目前为止,这是我尝试过的方式:
desc "Create new array"
task :new_array do
ARRAY=Array.new
end
desc "Add elements to array"
task :add_elements => [:new_array] do
File.open("infile.txt").each do |line|
ARRAY.push(#{line})
end
end
但是,我收到以下错误:
syntax error, unexpected keyword_end, expecting ')'
“ARRAY.push(#{line})”之后的结尾
有人可以向我解释问题是什么,或者让我知道另一种方法吗?
非常感谢!
【问题讨论】:
-
似乎语法错误来自传递给
#push的参数 - 你传入了line的字符串插值,但没有将其包装在字符串中。尝试将其更改为"#{line}"。 -
你的意思是
IO::readlines例如File.readlines("infile.txt") -
@engineersmnky 我不想使用它,因为我在每个数组元素的末尾都有换行符,这是我不想要的。尽管可能有一些方法可以删除它们(例如,使用下面建议的 chomp )。感谢您的建议。
-
很好
File.foreach("infile.txt").map {|line| line.chomp }