【发布时间】:2011-04-04 08:16:06
【问题描述】:
D 是否有“新类型”(如在 Haskell 中)。
这是一个幼稚的问题,因为我只是略读 D,但 Google 没有找到任何有用的东西。
在 Haskell 中,这是一种在编译时区分同一事物的不同类型的方法,但不会导致任何运行时性能损失。
例如你可以为米、秒和公斤制作新类型(双打)。如果您的程序将一个以米为单位的数量添加到一个以秒为单位的数量,这将在编译时出错,但在运行时将与两者一样快(它们在运行时)。
如果 D 没有类似于“newtype”的东西,那么处理量纲量的公认方法是什么?
谢谢,
克里斯。
【问题讨论】:
-
具有适当运算符重载的薄包装类可能会完成工作并得到优化。但这只是一个猜测和一个非常丑陋的解决方案。
-
@delnan:在 D 中你可能会使用结构,而不是类。
-
有一瞬间我在想:“newtype?..就像在高达???” XD
标签: haskell types d type-systems