帶引數的活動模式

活動模式只是簡單的功能。

與函式類似,你可以定義其他引數:

let (|HasExtension|_|) expected (uri : string) = 
    let result = uri.EndsWith (expected, StringComparison.CurrentCultureIgnoreCase)
    match result with
    | true -> Some true
    | _ -> None

這可以在以這種方式匹配的模式中使用:

    let isXMLFile uri =
        match uri with
        | HasExtension ".xml" _ -> true
        | _ -> false