我必须在 Ruby 中处理一些笨重的文件。给定一个特定的 ID,我知道与该 ID 关联的数据不会超过一个文件,但我不确定是哪个文件。它也可能不存在,这是我需要处理的错误状态。所以我有一个这样的循环:
files = ['a','b','c','d']
files.each do |filename|
File.open(filename,'r') do |f|
break unless contains_id(myid)
do_stuff
end
end
所以我有两个问题:
一旦我找到包含我正在寻找的数据的文件,什么是打破循环的正确方法?
如何处理数据不在任何文件中的情况?
这是我想出的,但感觉很粗糙:
files = ['a','b','c','d']
found = false
files.each do |filename|
break if found
File.open(filename,'r') do |f|
break unless contains_id(myid)
found = true
do_stuff
end
end
do_error_stuff unless found