所以我是Ruby的新手,我试图编写一个循环文件并执行if语句的多行块来获取文件中每个字符串的最后一个行号
i = 0
IO.foreach("testfile.log") {|line|
if line.include? str1
x = i
elsif line.include? str2 and line.include? str3
y = i
end
i++
}
当我尝试执行脚本时,我在块结束时收到以下错误:
错误语法错误,意外'}'
我在这里做错了什么?
答案 0 :(得分:5)
i++
无效Ruby。请改为i += 1
。
答案 1 :(得分:2)
如果你需要一个多行块
,这是一个糟糕的形式i = 0
IO.foreach("testfile.log") do |line|
if line.include? str1
x = i
elsif line.include? str2 and line.include? str3
y = i
end
i+=1 # courtesy of Michael Kohl
end