簡單的活動模式

活動模式是一種特殊型別的模式匹配,你可以在其中指定資料可能屬於的命名類別,然後在 match 語句中使用這些類別。

要定義將數字分類為正數,負數或零的活動模式:

let (|Positive|Negative|Zero|) num = 
    if num > 0 then Positive 
    elif num < 0 then Negative
    else Zero

然後可以在模式匹配表示式中使用它:

let Sign value = 
    match value with
    | Positive -> printf "%d is positive" value
    | Negative -> printf "%d is negative" value
    | Zero -> printf "The value is zero"

Sign -19 // -19 is negative
Sign 2 // 2 is positive
Sign 0 // The value is zero