是否有 shorthand 匹配,例如"anything of int"

Is there a shorthand to match e.g. "anything of int"

假设我有一个像这样的变体:

type myvar = A of int | B of int

我可以编写如下函数:

let myvar_to_int = function
| A i -> i
| B i -> i

假设我在变体中有更多元素,所有 <something> of int ...

写to_int函数有没有shorthand?例如一种在匹配案例中表达 <anything> of int 的方法?

(在代码的其他地方,我希望能够区分我的 AB 并明确匹配它们)

如果每个变体都有一个 int 那么你真的有一对不同的值:

type ab = A | B
type myvar = ab * int

let myvar_to_int = snd

否则,不,没办法如你所愿。可以写的稍微紧凑一点:

let myvar_to_int = function
| A i | B i -> i