我可以在Scala中使用原语吗?
用例用于存储数十亿的整数,因此4个字节(对于int)和16个字节(对于整数)之间的差异很重要。
答案 0 :(得分:15)
如果您希望Scala存储未装箱的基元,您可以使用Array[Int]
但不要在其上使用任何酷酷的Scala收集方法(因为它会强制装箱)。
如果您查找基元类型的不可变集合,可以查看Debox,它提供专门的缓冲区,集合和映射。该项目仍在不断发展,但非常有前途。
答案 1 :(得分:12)
您可以使用@specialised
注释让编译器为您创建类的专用实例。请参阅this article。
class Container[@specialized(Int) T](value: T) {
def apply(): T = value
}