Type class(类型类):函数式编程(尤其是 Haskell)中的一种抽象机制,用来把“某类类型共同支持的操作/行为”组织成接口(约束)。当某个具体类型实现了该类型类(成为它的 instance),就可以在需要这些操作的地方被通用地使用。除最常见含义外,在更广泛的语境里也可泛指“基于类型的接口/约束机制”。
/taɪp klæs/
A type class lets you write one function that works for many types.
类型类让你能写一个函数,同时适用于多种类型。
In Haskell, the Eq type class provides (==) and (/=), so any type with an Eq instance can be compared for equality.
在 Haskell 中,Eq 类型类提供 (==) 和 (/=),因此任何实现了 Eq 实例的类型都可以进行相等性比较。
type 来自希腊语 typos(印记、模子),引申为“类型/范畴”;class 源自拉丁语 classis(分组、类别)。合在一起的 type class 在编程语境中指“按类型来分组的一类能力/接口”,强调“某些操作属于一组类型共同具备的行为集合”。这一术语在 Haskell 的学术与工程社区中被系统化使用,并成为其多态与约束机制的核心概念之一。