17

我可以在 Scala 中使用原语吗?

该用例用于存储数十亿个整数,因此 4 字节(对于整数)和 16 字节(对于整数)之间的差异很重要。

4

2 回答 2

15

如果您希望 Scala 存储未装箱的原语,您可以使用Array[Int]但不要在其上使用任何酷的 Scala 集合方法(因为它会强制装箱)。

如果您寻找原始类型的不可变集合,您可以查看Debox,它提供了专门的 Buffer、Set 和 Map。该项目仍在发展中,但非常有前途。

于 2012-10-26T09:49:07.920 回答
13

您可以使用@specialised注解让编译器为您创建类的专用实例。见这篇文章

class Container[@specialized(Int) T](value: T) {
  def apply(): T = value
}
于 2012-10-26T09:32:38.550 回答