typeclass(也常写作 type class)指一种编程语言(尤其是 Haskell、PureScript 等函数式语言)中的机制:用来定义一组“类型必须实现的行为/接口”(如某些函数或运算),并允许不同类型通过“实例(instance)”来提供各自的实现,从而实现多态与代码复用。(在其他语境中也可能泛指“类型的分类/类”,但最常见的是函数式编程里的这个概念。)
/ˈtaɪpˌklæs/
Typeclasses let you write one function that works for many types.
类型类让你能写一个函数,却适用于多种类型。
By defining a Show instance for a custom data type, the typeclass system enables consistent string formatting across the program while keeping the formatting rules separate from the core logic.
通过为自定义数据类型定义一个 Show 实例,类型类系统可以在整个程序中提供一致的字符串格式化,同时把格式化规则与核心逻辑分离开来。
typeclass 由 type(类型) + class(类/分类) 组合而来。该术语在 Haskell 早期发展中被系统化使用,用来表示“按能力/行为对类型进行分组”的抽象机制:同一个 typeclass 表示一组操作的契约,不同类型通过 instance 来满足这个契约。
Eq、Ord、Show)