Haskell中有一个方便的undefined值,可用作代码中尚未定义的函数/路径的存根。在F#中有类似的东西吗?
答案 0 :(得分:11)
具体来说,你可以定义这样一个值:
let undefined<'T> : 'T = failwith "Not implemented yet"
let stub1 (x : int) : float = undefined
let stub2 (x : 'T) : 'T = undefined
请注意F#评估是严格的。如果将undefined
绑定到顶级值,则会在评估期间抛出异常。
答案 1 :(得分:6)
我认为
failwith "Not implemented"
几乎相同
答案 2 :(得分:5)
更具体和.NET友好的方式
let undefined<'T> : 'T = raise (NotImplementedException())
允许您跳过键入消息,并仍然将此异常与catch块或堆栈跟踪中的其他异常区分开来。