F#的文件检查代码

  • 本文关键字:代码 文件 file f#
  • 更新时间 :
  • 英文 :


当文件不存在时,我有这段代码来引发错误。

if !File.Exists(doFile) then
    printfn "doFile doesn't exist %s" doFile; failwith "quit"

然而,我犯了这个错误。怎么了?

error FS0001: This expression was expected to have type
    bool ref    
but here has type
    bool

!运算符在F#中有特殊含义,其定义为:

type 'a ref { Contents : 'a }
let (!) (x : ref 'a) = x.Contents

您得到错误是因为!运算符需要bool ref,而您传递给它的是bool

改为使用not功能:

if not(File.Exists(doFile)) then
    printfn "doFile doesn't exist %s" doFile; failwith "quit"

在F#中!不是not,它是一个引用运算符,所以说不是,您需要使用not函数,类似于if not <| File.Exists....

相关内容

  • 没有找到相关文章

最新更新