您知道要解开单个联合类型的值,您必须这样做:
type Foo = Foo of int*string
let processFoo foo =
let (Foo (t1,t2)) = foo
printfn "%A %A" t1 t2
但我的问题是:是否有办法为列表做到这一点?:
let processFooList (foolist:Foo list ) =
let ??? = foolist // how to get a int*string list
...
谢谢。
最佳答案
最好的方法是使用一个与 List.map
结合的函数,就像这样
let processFooList (foolist:Foo list ) = foolist |> List.map (function |Foo(t1,t2)->t1,t2)
关于f# - 如何在 f# 中的列表中解开联合值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20437188/