次のアクティブなパターンがあるとします。
let (| HasMatch |) (x:string) =
if x.Contains("0") then Some()
else None;;
そして、次のパターン マッチング関数:
let testFn x = function
| HasMatch i -> printfn "%A" i
| _ -> printf "nope";;
最後の行のワイルドカード パターンは言うwarning FS0026: This rule will never be matched
Some('a)
私が見たすべての例は、部分的なアクティブなパターンが一致するために戻る必要があり、返されたパターンNone
がワイルドカードによってキャプチャされることを推測しているようです。エラーは別のことを言っているようです。
私は何が欠けていますか?