是否有一个简写可以匹配,例如“int 的任何内容”

Ane*_*pic 0 ocaml

假设我有一个变体,例如:

type myvar = A of int | B of int
Run Code Online (Sandbox Code Playgroud)

我可以写一个函数,如:

let myvar_to_int = function
| A i -> i
| B i -> i
Run Code Online (Sandbox Code Playgroud)

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

是否有编写 to_int 函数的简写?<anything> of int例如,在匹配情况下表达的方式?

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

Jef*_*eld 7

如果每个变量都有一个 int 那么你确实有一对不同的值:

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

let myvar_to_int = snd
Run Code Online (Sandbox Code Playgroud)

否则,不,没有办法做你想做的事。你可以写得稍微紧凑一些:

let myvar_to_int = function
| A i | B i -> i
Run Code Online (Sandbox Code Playgroud)