【发布时间】:2011-06-21 19:19:38
【问题描述】:
我需要在隐式中使用类型(任何类型)作为类型参数的标记,以将其与另一个隐式区分开来。这很奇怪,但这可能是另一个问题。
因为我可以使用任何类型,所以我考虑使用最便宜的一种,就内存占用和初始化时间而言。在这种情况下它可能不会对性能产生太大影响,但问题很有趣:哪个是 Scala 最便宜的类型?
在 Java 中,答案显然是 java.lang.Object。但是 Scala 有一些“有趣”的类型:Any、AnyVal 类型,以及围绕它们可能进行优化的底部类型。 Nothing 类型不能被实例化,所以它被排除在这个比较之外。
【问题讨论】:
-
有趣,我会说java中最便宜的类型是简单的int。
-
我不确定这有多“便宜”,但没有什么可以使用:
def x(_ : Nothing) = (); x(null.asInstanceOf[Nothing])只是不要尝试使用那个 Nothing :-)跨度> -
看到一个关于“root”问题的问题也很有趣。
-
@Adrian Fritsch:您需要多少个标记值?只有两个(标记/未标记)?
-
这听起来像是过早的优化。