当文件不存在时,我有这段代码来引发错误。
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....