Просто интересно, почему я не могу сделать это:
let myFn (data : obj) =
match data with
| :? (string * string) as (s1, s2) -> sprintf "(%s, %s)" s1 s2 |> Some
| :? (string * string * int) as (s1, s2, i) -> sprintf "(%s, %s, %d)" s1 s2 i |> Some
| _ -> None
Почему?
obj
и сопоставления типов. F# следует использовать безопасным для типов способом, а использованиеobj
и приведения вниз отвлекает от этого. - person Charles Roddie   schedule 16.11.2020