我正在学习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
。我是对的吗?
谢谢!
答案 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会自动为你关闭文件。