Esiste un modo per pattern matching sulle funzioni sindacali discriminati, ad esempio: -pattern matching su un'unione discriminata
type Test =
| A of string
| B of int
| C of char
let DefaultTest t =
match t with
| A(_) -> A(null)
| B(_) -> B(0)
| C(_) -> C('\u0000')
let a = A |> DefaultTest
Ovviamente questo codice non è valido F # come DefaultTest accetta un parametro di tipo di prova, piuttosto che ' a -> Test. C'è un modo per raggiungere questo senza specificando un valore per l'unione discriminata?
Quello che sto cercando, in definitiva, è una funzione che immette una funzione di tipo 'a -> Test e output Test (valore predefinito di' a).
Brillante. Questo è esattamente ciò di cui ho bisogno! Mi sento molto stupido ora ...! – ljs
Ho anche trovato A |> fun f -> Unchecked.defaultof <_> |> f per essere piuttosto buonissimo !!! – ljs
Vorresti "Un Unchecked.defaultof <_>" di più? – Brian