Как использовать примитивы в Scala?
Могу ли я использовать примитивы в Scala?
Вариант использования - для хранения миллиардов int, поэтому разница между 4 байтами (для int) и 16 байтами (для Integer) важна.
Ответы
Ответ 1
Если вы хотите, чтобы Scala сохранял несвязанные примитивы, вы можете использовать Array[Int]
, но воздержитесь от использования какого-либо классного метода коллекции Scala на нем (потому что это заставит бокс).
Если вы ищете неизменные коллекции типов примитивов, вы можете посмотреть Debox, который предоставляет специализированные буферы, наборы и карты, Проект все еще развивается, но он очень перспективен.
Ответ 2
Вы можете использовать аннотацию @specialised
, чтобы компилятор создал для вас специализированные экземпляры класса. См. в этой статье.
class Container[@specialized(Int) T](value: T) {
def apply(): T = value
}