似乎是一个非常基本的问题,但如果我有:
data LogLevel = Info | Warning | Error Int
x = Info
y = Error 13
我可以写
if (x==Info)
但是如何为类型Error编写测试?
答案 0 :(得分:7)
Error
不是一种类型;它是一个数据构造函数。您可以使用模式匹配来区分LogLevel
类型的各种值。
case x of
Info -> ...
Warning -> ...
Error n -> ...
此处,您不仅会根据x
的值采用正确的“分支”,还会获得与Error
相关联的特定整数(在n
中)模式匹配。