class - 类实例声明的解释

标签 class haskell declaration

我正在学习教程并找到这段代码:

data A = B | C deriving(Eq)

class K a where
 f :: a -> Bool

instance K A where
 f x = x == C
 f _ = False
 
call = f B

为什么我需要 f _ = False?没有它我得到相同的结果。

最佳答案

答案很简单:不需要此处需要f _ = False。事实上,如果您使用 -Wall 进行编译,那么编译器会警告您该子句是多余的,因为 f x = ... 子句已经捕获了所有内容。

如果教程告诉您要有那个额外的子句,那么,那是错误的。

关于class - 类实例声明的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74799180/

相关文章:

c++ - 如何在 C++ 中正确声明和使用 std::array

php - 如何向 PHP 中的现有类添加方法?

haskell - 此功能的正确签名是什么?

取消引用类成员变量的 C++ 语法

haskell - 如何在haskell中获取值类型

Haskell 存在量化详解

c - 普通数组声明和在结构内声明的数组之间的内存和效率差异

c - C结构的内存布局可视化

class - 如何从具有相同名称 IsTesting() 的类方法调用内置函数 IsTesting()?

c++ - 指向类中对象的指针,C++ 新手问题