如何将判别并集作为参数传递到函数中?F#

如何将判别并集作为参数传递到函数中?F#,f#,F#,如果定义的类型是有区别的并集,如何在函数中传递参数?例如,我想传入一个Color类型的对象,其中colorB设置为“blue”。在函数中,我想检查colorB是否设置为蓝色 type Color = ColorA of string | ColorB of string let IsColorBlue (a:Color): bool = match a with | a -> if a.ColorB = "blue" then true // <

如果定义的类型是有区别的并集,如何在函数中传递参数?例如,我想传入一个Color类型的对象,其中colorB设置为“blue”。在函数中,我想检查colorB是否设置为蓝色

type Color = ColorA of string | ColorB of string

let IsColorBlue (a:Color): bool = 
    match a with
    | a -> if a.ColorB = "blue" then true // <- How to check if ColorB is blue ?

IsColorBlue (Color-Object)   // <- How do I call this?
type Color=string的ColorA | string的ColorB
设IsColorBlue(a:颜色):bool=
匹配

|a->如果a.ColorB=“blue”则为true//要使用模式匹配检查a
Color
是否为具有特定值的
ColorB
,可以使用以下语法:

let IsColorBlue(a:Color):bool=
匹配
|颜色B“蓝色”->正确
|_u->false
要创建
Color
类型的值,可以编写
ColorA“some”
ColorB“some”
。例如:

IsColorBlue(ColorB“blue”)//true
IsColorBlue(ColorB“红色”)//假-非蓝色
IsColorBlue(ColorA“蓝色”)//假-非ColorB

首先,您需要匹配您有一个
ColorB
而不是
ColorA
,这是您在代码中没有做的。另外,请提供一个正确的,您没有定义
Color对象
如果您需要检查两个参数,该怎么办?比如,如果ColorA=blue&ColorB=blue同时出现。如何调用函数&如何使用模式匹配编写if-else?