假设我有一个变体,例如:
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 并仍然明确地匹配它们)
如果每个变量都有一个 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)