新手问题 根据笨方法学 ruby 碰到奇怪问题?求解

bluetea · June 16, 2013 · Last by chinakr replied at June 18, 2013 · 4458 hits

http://lrthw.github.io/ex16/ 根据这个教程的第 16 章敲的代码:确保和教程一样, filename = ARGV.first script = $0

puts "We're going to erase #{filename}." puts "If you don't want that, hit CTRL-C (^C)." puts "If you do want that, hit RETURN."

print "? " STDIN.gets

puts "Opening the file..." target = File.open(filename, 'w')

puts "Truncating the file. Goodbye!" target.truncate(target.size) #这个就是 15 行

puts "Now I'm going to ask you for three lines."

print "line 1: "; line1 = STDIN.gets.chomp() print "line 2: "; line2 = STDIN.gets.chomp() print "line 3: "; line3 = STDIN.gets.chomp()

puts "I'm going to write these to the file."

target.write(line1) target.write("\n") target.write(line2) target.write("\n") target.write(line3) target.write("\n")

puts "And finally, we close it." target.close()

有个奇怪的问题: 输出如下: C:\ruby\site>ruby test.rb bbb.txt We're going to erase bbb.txt. If you don't want that, hit CTRL-C (^C). If you do want that, hit RETURN. ? Opening the file... Truncating the file. Goodbye! test.rb:15: undefined method `size' for #File:bbb.txt (NoMethodError)

报错说第 15 行没有没 size 定义 method,请问是我电脑的环境问题吗?求解? 另外问下,代码的第二行,定义那个的作用是什么?

因为你用的 ruby1.8,版本应该和教材一致

好的,多谢,我晚上有 mac 试下!

这类教程,例子的可读性、启发性和趣味性很重要

You need to Sign in before reply, if you don't have an account, please Sign up first.