我已经从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:在'
非常感谢任何帮助。我一字一句地跟着他的例子。
答案 0 :(得分:2)
您必须在test.txt
文件中添加更多行(对于您最后执行的每个方法调用,至少需要三行文本)。
我遇到了同样的问题,因为课程并不清楚,但由于脚本连续打印出三行,因此文件中需要3行文本才能使脚本正常工作。
答案 1 :(得分:1)
在test.txt文件中添加更多行