有没有更干净的方法来处理F#中的双可为空类型?

时间:2019-05-17 11:02:43

标签: f#

我有这两行:

if not start.IsNone && not stop.IsNone then
    let times = TimeArray start.Value stop.Value interval

是否有一种更清洁的方法?如果是单个值,我可以使用match,但是2个值呢? (这里是F#第3天。)

1 个答案:

答案 0 :(得分:4)

您仍然可以使用模式匹配。考虑一下这个毫无意义的示例,它可以帮助您理解整体模式。

let start = Some 1
let stop = Some 2    
let res =
    match start, stop with
    | Some _a, Some _b -> (_a,_b)
    | _, _ -> (0, 0)