Я искал использование @specialized
в исходном коде стандартной библиотеки Scala 2.8.1. Похоже, что только несколько черт и классов используют эту аннотацию: Function0
, Function1
, Function2
, Tuple1
, Tuple2
, Product1
, Product2
, AbstractFunction0
, AbstractFunction1
, AbstractFunction2
.
Ни один из классов коллекции не является @specialized
. Почему нет? Будет ли это генерировать слишком много классов?
Это означает, что использование классов коллекции с примитивными типами очень неэффективно, потому что будет много ненужного бокса и распаковки.
Каков наиболее эффективный способ иметь неизменный список или последовательность (с IndexedSeq
характеристиками) Int
s, избегая бокса и распаковки?