Как использовать примитивы в Scala? - программирование

Как использовать примитивы в Scala?

Могу ли я использовать примитивы в Scala?

Вариант использования - для хранения миллиардов int, поэтому разница между 4 байтами (для int) и 16 байтами (для Integer) важна.

4b9b3361

Ответ 1

Если вы хотите, чтобы Scala сохранял несвязанные примитивы, вы можете использовать Array[Int], но воздержитесь от использования какого-либо классного метода коллекции Scala на нем (потому что это заставит бокс).

Если вы ищете неизменные коллекции типов примитивов, вы можете посмотреть Debox, который предоставляет специализированные буферы, наборы и карты, Проект все еще развивается, но он очень перспективен.

Ответ 2

Вы можете использовать аннотацию @specialised, чтобы компилятор создал для вас специализированные экземпляры класса. См. в этой статье.

class Container[@specialized(Int) T](value: T) {
  def apply(): T = value
}