3

在 F# 中,use对我来说似乎更具可读性,但using本质上更具声明性。是否有一般的经验法则来支持来源?

4

1 回答 1

8

我一般比较喜欢use。该函数在库中不存在using的时候就已经存在,因此即使在关键字更有意义的情况下,一些较旧的 F# 示例也可能会使用。useusinguse

当您想更明确地指定范围时,该using函数可能仍然有意义:

using (new StreamWriter(..)) (fun sw -> 
  sw.Write("hi"))
printfn "Something more here"

但即使这样也可以使用use

( use sw = new StreamWriter(..)
  sw.Write("hi") )
printfn "Something more here"

关于关键字的另一个好处use是您可以在序列表达式中使用它(例如从文件内容生成集合时)和异步工作流(管理在网络通信期间分配的连接)。

于 2013-10-04T19:36:52.930 回答