Ich habe nach der Verwendung von @specialized
im Quellcode der Standardbibliothek von Scala 2.8.1. Es sieht so aus, als ob nur eine Handvoll von Traits und Klassen diese Annotation verwenden: Function0
, Function1
, Function2
, Tuple1
, Tuple2
, Product1
, Product2
, AbstractFunction0
, AbstractFunction1
, AbstractFunction2
.
Keine der Sammlungsklassen ist @specialized
. Warum nicht? Würden dadurch zu viele Klassen entstehen?
Das bedeutet, dass die Verwendung von Aufzählungsklassen mit primitiven Typen sehr ineffizient ist, da eine Menge unnötiger Boxing- und Unboxing-Prozesse stattfinden.
Was ist der effizienteste Weg, um eine unveränderliche Liste oder Sequenz zu haben (mit IndexedSeq
Eigenschaften) von Int
s, die Vermeidung von Boxen und Unboxing?