1

次のアクティブなパターンがあるとします。

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がワイルドカードによってキャプチャされることを推測しているようです。エラーは別のことを言っているようです。

私は何が欠けていますか?

4

1 に答える 1