在F#中,use
对我来说似乎更具可读性,但using
本质上更具说明性。是否有一般的经验法则可以在源头中受到支持?
答案 0 :(得分:8)
我通常更喜欢use
。 using
函数在use
不存在时已存在于库中,因此即使在using
关键字出现的情况下,某些较旧的F#示例也可能使用use
更有意义。
当您想要更明确地指定范围时,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
关键字的另一个好处是你可以在序列表达式中使用它(例如从文件内容生成集合时)和异步工作流(用于管理网络通信期间分配的连接)。