代码之家  ›  专栏  ›  技术社区  ›  xiaodai

朱莉娅:如何在函数退出时执行一些代码?E、 g.喜欢R's“on.exit”?

  •  0
  • xiaodai  · 技术社区  · 6 年前

    我有一段代码要运行,我想在函数退出时执行一些代码,例如关闭连接。

    fn(io) = begin
      write(io)
      # do lots of stuff which can fail
      ...
      # want close connection
      on_exit(()->close(io))
    end
    
    1 回复  |  直到 6 年前
        1
  •  7
  •   DNF    6 年前

    对于这个特定的例子,您可能会使用 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
    
    推荐文章