活动模式是模式匹配的一种特殊类型,您可以在其中指定数据可能属于的命名类别,然后在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为负 Sign 2 // 2为正 Sign 0 // 值为零