我正在处理一个基于记录的文本文件:所以我正在寻找一个构成记录开始的起始字符串:没有记录结束标记,所以我使用下一个记录的开始来定义最后记录.
所以我已经建立了一个简单的程序来做到这一点,但是我看到一些令我震惊的东西:看起来Ruby正在忘记局部变量存在 – 或者我发现编程错误? [虽然我不认为我有:如果我在我的循环之前定义变量’message’,我看不到错误].@H_404_3@
这是一个简化的示例,其中包含注释中的输入数据和错误消息:@H_404_3@
flag=false # message=nil # this is will prevent the issue. while line=gets do if line =~/hello/ then if flag==true then puts "#{message}" end message=StringIO.new(line); puts message flag=true else message << line end end # Input File example: # hello this is a record # this is also part of the same record # hello this is a new record # this is still record 2 # hello this is record 3 etc etc # # Error when running: [nb,first iteration is fine] # <StringIO:0x2e845ac> # hello # test.rb:5: undefined local variable or method `message' for main:Object (NameError) #