当Julia的句柄超出范围时,它会自动关闭文件吗?

时间:2014-07-14 17:30:13

标签: julia

Julia为文件提供了open()和close()函数。有点像

finalizer(filehandle, obj -> close(obj), filehandle )

打开文件时自动实现?

1 个答案:

答案 0 :(得分:8)

是的,这是自动完成的。但是,当对象超出范围时,不会调用终结器,而是在垃圾收集确定不再有对该对象的引用时调用终结器。但是,当您期望或希望它时,这可能不会发生。要在退出当前作用域时自动关闭文件句柄,可以使用open-do-block结构:

open("file.txt") do fh
  # do stuff with open file handle `fh`
end # `fh` is closed here