假设我有
type t = A of int | B of int
let xx = A(2);;
let yy = A(3);;
我想测试 xx 和 yy 的构造函数是否相等,
是否有捷径可寻 ?而不必
match xx with
A _ ->
(match yy with A _ -> true | B _ -> false)
| B _ ->
(match yy with A _ -> false | B _ -> true);;
当一个类型有很多构造函数时,这会变得非常混乱
您可以将上面的内容重写为更简单的形式:
match xx, yy with
| A _, A _
| B _, B _ -> true
| (A _ | B _), _ -> false
但我不知道不枚举所有构造函数的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)