我在@specialized
Scala 2.8.1的标准库的源代码中搜索了使用。看起来只有少数特征和类使用此注释:Function0
, Function1
, Function2
, Tuple1
, Tuple2
, Product1
, Product2
, AbstractFunction0
, AbstractFunction1
, AbstractFunction2
。
集合类都不是@specialized
. 为什么不?这会产生太多的类吗?
这意味着使用原始类型的集合类是非常低效的,因为会有很多不必要的装箱和拆箱。
拥有 s的不可变列表或序列(具有IndexedSeq
特征)的最有效方法是什么Int
,避免装箱和拆箱?