如果我有不同类型数组的区分联合,我如何将它们转换为它们的“实际”类型?
type ItemStuff =
| Colors of string[]
| Sizes of int[]
let foo = Sizes [|1;2;3|]
当我得到 foo 的值时运行上述内容后,我看到:
val foo : ItemStuff = Sizes [|1;2;3|]
如何从 foo 获取实际的 int 数组?我只是错过了一些允许我访问类似内容的语法
foo.[2]
吗?我无法通过 foo 枚举,所以我无法使用 map。我可以为 ItemStuff 编写一个成员,它为我返回的每种不同类型的数组返回一个正确类型的数组,但这似乎不正确?
我在这里最好的方法是什么?
这就是我最终要做的。关于更好的方法的任何想法?
type ItemProp =
| Colors of string[]
| Sizes of int[]
| Quants of int[]
member this.GetColors() =
match this with
| Colors (stringArray) ->
stringArray
| _ -> null
member this.GetIntArr() =
match this with
| Sizes (intArray) | Quants (intArray) ->
intArray
|_ -> null
foo.GetIntArr()