Czy mogę używać prymitywów w Scali?
Przypadek użycia służy do przechowywania miliardów liczb całkowitych, więc ważna jest różnica między 4 bajtami (dla liczby całkowitej) a 16 bajtami (dla liczby całkowitej).
Odpowiedzi:
14 dla odpowiedzi № 1Jeśli chcesz, aby Scala przechowywała rozpakowane prymitywy, możesz użyć Array[Int]
ale powstrzymaj się od używania na nim jakiejkolwiek fajnej metody zbierania Scali (ponieważ wymusi to boks).
Jeśli szukasz niezmiennych kolekcji typów pierwotnych, możesz rzucić okiem Debox, który zapewnia specjalistyczne bufory, zestawy i mapy. Projekt wciąż się rozwija, ale jest bardzo obiecujący.
12 dla odpowiedzi nr 2
Możesz użyć @specialised
adnotacja, aby umożliwić kompilatorowi tworzenie wyspecjalizowanych instancji klasy za Ciebie. Widzieć Ten artykuł.
class Container[@specialized(Int) T](value: T) {
def apply(): T = value
}