朱莉娅:如何在函数退出时执行一些代码?例如。 lik R的`on.exit`?

时间:2019-10-01 06:19:45

标签: julia

我有一段代码可以运行,并且我想在某个函数的出口处执行一些代码,例如关闭连接。

fn(io) = begin
  write(io)
  # do lots of stuff which can fail
  ...
  # want close connection
  on_exit(()->close(io))
end

1 个答案:

答案 0 :(得分:7)

对于此特定示例,您可能会使用do块:

open("myfile.txt", "w") do io
    write(io, "Hello world!")
end

在更一般的情况下,您可以使用finally。来自文档字符串:

  

在给定的代码块退出时运行一些代码,无论如何   它退出。对于       例如,这是我们如何保证打开的文件已关闭:

  f = open("file")
  try
      operate_on_file(f)
  finally
      close(f)
  end