未定义的方法`chomp' for nil:NilClass(NoMethodError)

时间:2016-08-01 19:48:27

标签: ruby

我已经从Zed Shaw的书中输入了以下代码:"艰难地学习Ruby

input_file = ARGV.first #this takes the file test.txt

def print_all(f) #reading a line
puts f.read
end

 def rewind(f)
 f.seek(0)
 end

   def print_a_line(line_count, f)                
   current_line
   puts "#{line_count}, #{f.gets.chomp}"
   end

  current_file = open(input_file)

 puts "First let's print the whole file:\n"

 print_all(current_file)

 puts "Now let's rewind, kind of like a tape"

rewind(current_file)

puts "Let's print three line:"

current_line = 1
print_a_line(current_line, current_file)

current_line = current_line + 1
print_a_line(current_line, current_file)

current_line = current_line + 1
print_a_line(current_line, current_file)

我得到的错误是'ex20.rb:12:in print_a_line': undefined method chomp' for nil:NilClass (NoMethodError)     来自ex20.rb:31:在'

非常感谢任何帮助。我一字一句地跟着他的例子。

2 个答案:

答案 0 :(得分:2)

您必须在test.txt文件中添加更多行(对于您最后执行的每个方法调用,至少需要三行文本)。

我遇到了同样的问题,因为课程并不清楚,但由于脚本连续打印出三行,因此文件中需要3行文本才能使脚本正常工作。

答案 1 :(得分:1)

在test.txt文件中添加更多行