定义:
def trave_path path, *args
if File.directory? path
Dir.foreach(path) { |p| trave_path path + "/" + p, *args unless p =~ /^./ }
else
yield path, *args
end
end
调用('6124000'是目录,下面还包含目录,然后才是文件):
trave_path("61240000") do |pa|
p pa
end
报错:
D:/Program Files/Ruby1.86/Ruby/lib/lbc/Path.rb:6:in trave_path': no block givetrave_path'
(LocalJumpError)
from D:/Program Files/Ruby1.86/Ruby/lib/lbc/Path.rb:4:in
from D:/Program Files/Ruby1.86/Ruby/lib/lbc/Path.rb:4:in foreach'trave_path'
from D:/Program Files/Ruby1.86/Ruby/lib/lbc/Path.rb:4:in
from D:/Program Files/Ruby1.86/Ruby/lib/lbc/Path.rb:4:in trave_path'foreach'
from D:/Program Files/Ruby1.86/Ruby/lib/lbc/Path.rb:4:in
from D:/Program Files/Ruby1.86/Ruby/lib/lbc/Path.rb:4:in `trave_path'
from get_zfbp.rb:1
注意:如果“6124000”本身就是文件,程序是可以运行的。
难道不能在嵌套程序中调用block呢,还是我的用法不对。请大家指教。