F# Utilizzo discriminatorio di base dell'Unione


Esempio

I sindacati discriminati in F # offrono un modo per definire tipi che possono contenere un numero qualsiasi di tipi di dati diversi. La loro funzionalità è simile alle unioni C ++ o alle varianti VB, ma con l'ulteriore vantaggio di essere sicuro.

// define a discriminated union that can hold either a float or a string
type numOrString = 
    | F of float
    | S of string

let str = S "hi" // use the S constructor to create a string
let fl = F 3.5 // use the F constructor to create a float

// you can use pattern matching to deconstruct each type
let whatType x = 
    match x with
        | F f -> printfn "%f is a float" f
        | S s -> printfn "%s is a string" s

whatType str // hi is a string
whatType fl // 3.500000 is a float