当前位置: 首页 > 工具软件 > fsharp > 使用案例 >

FSharp Active Pattern

傅翰池
2023-12-01

Active pattern 是什么
简单的来说是一种数据类型的转换方式。同一般的类型转换相比,实质相同,形式却异常丰富。要知道有时候,并且大多数时候形式是大于实质的。Active pattern常被用来将输入数据进行分类,也就是说输入一种类型,输出的可能是若干种不同的结果。在部分匹配的情况下,也可以返回Option类型,让调用者决定如何处理进一步的匹配过程。
传统的类型转换是一种转与不转的过程(当转换失败,则不转),可以说是对原始数据全集的变换。Active pattern进一步也可以对输入数据的子集进行转换,之前提到它可以将部分的控制权转让,所以可以有很灵活的表达形式。
初学Active pattern的时候,似乎其所有的使用形式都是和match语句绑定,其实并不是全部,只是最长用的partial pattern与match语句有天然的契合作用所以出现的次数比较多

let parseNumeric str =
   match str with
     | Integer i -> printfn "%d : Integer" i
     | Float f -> printfn "%f : Floating point" f
     | _ -> printfn "%s : Not matched." str

msdn上有这样一个例子 里面值得注意的是 str是参数 i,f 是结果
其实我们也可以这么写
let (Integer i) = "3"
虽然会报一个warning(未全覆盖),但是也能通过编译。在一些需要字符串模式匹配的场景中如此形式再简洁不过了,甚至还能返回后续未处理的数据。让过程继续。
 

 类似资料:

相关阅读

相关文章

相关问答