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

Mag*_*eek 3 julia

Julia为文件提供了open()和close()函数.是这样的

finalizer(filehandle, obj -> close(obj), filehandle )
Run Code Online (Sandbox Code Playgroud)

打开文件时自动实现?

Ste*_*ski 8

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

open("file.txt") do fh
  # do stuff with open file handle `fh`
end # `fh` is closed here
Run Code Online (Sandbox Code Playgroud)