这是一个简单的ruby脚本,它接受来自用户的输入并提供输出(是的,它将被重构).我希望这个脚本能够将输出提供给文本文件,而不是控制台窗口.这是通过简单添加完成的,$stdout = File.new('out.txt', 'w')
但我认为这一行只会描述一个变量,我将在稍后使用它告诉脚本使用它将输出写入创建的文件.
我找不到有关此方法的大量文档,并想知道该程序如何知道如何将生成的输出写入该文件?
$stdout
是一个全局变量.默认情况下,它存储IO
与程序的标准输出(默认情况下为控制台)关联的类型的对象.
puts
是一个Kernel
模块的方法,它实际调用$stdout.send()
并传递它接收的参数列表.正如文档所解释的,puts(obj, ...)
相当于$stdout.puts(obj, ...)
.
您的代码替换$stdout
为File
扩展类的类型的对象IO
.创建它时,您的对象会打开out.txt
要写入的文件,并且它的继承与IO
它的默认行为完全兼容$stdout
.
因为默认情况下,所有输出都是$stdout
,所以您的新定义$stdout
可确保将输出写入文件out.txt
而不需要对代码进行其他更改.