使用file.exists时不断出错

时间:2014-03-09 16:45:02

标签: ruby syntax-error

最近刚开始学习Ruby并且已经碰壁了。我想使用File.exists?但它似乎并没有为我工作。这是我的代码。

puts "Does the output file exist? #{File.exist? to_file}"
puts "Ready, hit RETURN to continue, CTRL-C to abort."
STDIN.gets

我一直收到错误说:“存在?”:无法将nil转换为字符串(TypeError)

有谁知道为什么?

1 个答案:

答案 0 :(得分:2)

File::exist?方法需要 string 值作为其参数。但在您的情况下,由于任何原因,参数to_filenil。现在您使用了"..",因此发生了插值,因此如果将nil作为参数提供给方法{{1},则会发生方法调用并抛出错误}。

写如下:

exist?

它不会抛出错误,因为您现在正在将puts "Does the output file exist? #{File.exist?(to_file.to_s)}" 转换为空字符串nil,或者如果存在任何字符串值,则会返回相同的字符串。请参阅方法NilClass#to_s