刚开始玩F#。和我现在一样可怕,我也不知道要搜索类似的线程。
这就是我想要做的:
let test animal =
if animal :? Cat //testing for type
then "cat"
elif animal :? Dog //testing for type
then "dog"
elif animal = unicorn //testing value equality
then "impossible"
else "who cares"
基本上它涉及类型测试模式匹配以及其他条件检查。我可以像这样完成第一部分(类型检查):
let test(animal:Animal) =
match animal with
| :? Cat as cat -> "cat"
| :? Dog as dog -> "cat"
| _ -> "who cares"
1.有没有一种方法可以将相等检查(如第一个示例)以及上述类型测试模式匹配结合起来?
2.在一个单一的模式匹配结构中执行的多种检查在 F# 圈子中是否普遍不受欢迎?