file.new(“temp.out”,“w”)行代表什么?

时间:2015-03-31 23:07:29

标签: ruby-on-rails ruby

我正在学习Ruby语言,并且我有很多乐趣。 我目前正在使用文件输出练习温度转换器。

解决方案如下:

print "Hello. Please enter a Celsius value: "
celsius = gets.to_i
fahrenheit = (celsius * 9 / 5) + 32
puts "saving result to output file 'temp.out'"
  

fh = File.new(" temp.out"," w")

fh.puts fahrenheit
fh.close

突出显示的部分让我困惑。
我们正在调用File.new创建一个名为"temp.out"的文件,并"w"写入任何输入,直到我们fh.close。我是对的吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

默认情况下,puts()会将其输出发送到连接到屏幕的 stdout File.new()创建一个分配给变量fh的新文件。因为您在写入模式中创建了文件,所以可以使用fh将内容写入文件。 fh.puts()将输出发送到分配给变量fh的文件。换句话说,一个裸puts()语句将输出发送到您的屏幕,但当您在puts()前面有一个文件时,输出将转到该文件。

你也可以写这样的语句:

File.open("temp.out", "w") do |f|
  f.puts fahrenheit
end

这样编写它的好处是:当end语句执行时,Ruby会自动为你关闭文件。