You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

寻找类型化编程中的专业术语(是否为“伪幻影类型”?)

寻找类型化编程中的专业术语(是否为“伪幻影类型”?)

嘿,咱们来唠唠类型化编程里一个超实用的小工具——Proxy类型!

在类型化编程的场景里,Proxy存在的核心意义就是明明白白告诉读代码的人:我用这个玩意儿,纯纯是冲它的类型来的,它的“值”半毛钱用都没有。甚至很多时候,这个Proxy连能正常用的值都不需要,咱们通常直接用undefined来占位就行。

举个接地气的例子:比如你要写个函数,只需要靠某个类型的信息来做逻辑,但完全不需要这个类型的实际值。这时候Proxy就像个“类型快递员”,把你需要的类型信息递到函数里,又不会带进来多余的值层面的包袱。

下面是Haskell里Proxy最基础的定义,还派生了Bounded类型类(注释里标了它的引入版本,咱们重点看核心结构就行):

data Proxy t = Proxy deriving (Bounded -- ^ @since ...

哦对了,你问到的“伪幻影类型”——其实Proxy和**幻影类型(Phantom Type)**是实打实的近亲。严格来说,Proxy本身是个专门用来承载类型参数的“空类型”,它的构造器Proxy不携带任何值数据,完全是为了让类型系统能“抓”到那个t参数。如果说“伪幻影类型”,可能是指用Proxy来模拟幻影类型的用法?不过在标准术语里,Proxy就是Proxy类型,而幻影类型是更宽泛的概念——指那些类型参数不影响值的内存表示的类型,Proxy绝对是幻影类型的典型代表之一哦。

火山引擎 最新活动