Skip to content
TopicTracker
来自 HackerNews查看原文
译文语言译文语言

Phantom Type

Phantom type(幻影类型)是 Haskell 中一种类型参数在运行时没有对应值的技术,仅用于在编译期进行类型约束和检查。它常用于编码状态机、单位量纲验证等场景,能在不引入运行时开销的情况下增强程序的安全性。

背景速读

Haskell 是一种纯函数式编程语言,以其强类型系统和类型推断闻名。"Phantom type"(幽灵类型)指在类型定义中出现但不在构造函数中使用的类型参数。它们不携带运行时数据,仅在编译时用于约束或标记类型——类似给数据"盖章",让编译器能在不增加运行时开销的情况下区分不同上下文(如区分摄氏与华氏度、未验证与已验证的输入)。这一技巧常见于类型安全的 API 设计、长度单位标记、状态机编码等场景。理解幽灵类型有助于掌握 Haskell 在"通过类型让非法状态不可表示"方面的设计哲学。