为什么绑定不详尽?
Why binding not exhaustive?
为什么在最后一行显示 binding not exhaustive
警告?
datatype fruit = Apple
datatype sizedFruit = Big of fruit | Small of fruit
val Big x = Big Apple;
我认为绑定是详尽的,因为 RHS 表达式在唯一给定的情况下与 LHS 模式匹配 x = Apple
。因此,我可以放心地忽略这个警告吗?
通过将第 2 行替换为 datatype sizedFruit = Big of fruit
,警告消失了,但我的实际用例不能承受这个。提前致谢。
编译器:新泽西州标准 ML(64 位)v110.96
详尽性的定义不考虑绑定的 RHS,只考虑模式本身。否则定义会复杂得多。实际上,这已经足够好了,因为没有太多理由像上面那样编写绑定而不是更简单的 val x = Apple
。也就是说,在这种情况下,您可以将警告视为冗余代码的指示。 :)
是的,您可以忽略该警告。或者简化程序。
为什么在最后一行显示 binding not exhaustive
警告?
datatype fruit = Apple
datatype sizedFruit = Big of fruit | Small of fruit
val Big x = Big Apple;
我认为绑定是详尽的,因为 RHS 表达式在唯一给定的情况下与 LHS 模式匹配 x = Apple
。因此,我可以放心地忽略这个警告吗?
通过将第 2 行替换为 datatype sizedFruit = Big of fruit
,警告消失了,但我的实际用例不能承受这个。提前致谢。
编译器:新泽西州标准 ML(64 位)v110.96
详尽性的定义不考虑绑定的 RHS,只考虑模式本身。否则定义会复杂得多。实际上,这已经足够好了,因为没有太多理由像上面那样编写绑定而不是更简单的 val x = Apple
。也就是说,在这种情况下,您可以将警告视为冗余代码的指示。 :)
是的,您可以忽略该警告。或者简化程序。