是否有 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
的方法?
(在代码的其他地方,我希望能够区分我的 A
和 B
并明确匹配它们)
如果每个变体都有一个 int 那么你真的有一对不同的值:
type ab = A | B
type myvar = ab * int
let myvar_to_int = snd
否则,不,没办法如你所愿。可以写的稍微紧凑一点:
let myvar_to_int = function
| A i | B i -> i
假设我有一个像这样的变体:
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
的方法?
(在代码的其他地方,我希望能够区分我的 A
和 B
并明确匹配它们)
如果每个变体都有一个 int 那么你真的有一对不同的值:
type ab = A | B
type myvar = ab * int
let myvar_to_int = snd
否则,不,没办法如你所愿。可以写的稍微紧凑一点:
let myvar_to_int = function
| A i | B i -> i