Istnieją dwa możliwe sposoby wyrażania abstrakcji nad typami.Czy istnieje przykład użycia abstrakcyjnego typu scala, którego nie można uzyskać przy pomocy leków generycznych?
abstract class Buffer {
type T
val element: T
}
raczej niż generics, np.
abstract class Buffer[T] {
val element: T
}
Rozumiem korzyści płynące z używania różnych podejść w różnych kontekstach. Ale interesują mnie przykłady, w których absolutnie niemożliwe jest przekonwertowanie wersji abstrakcyjnej na wersję ogólną.
Fragmenty kodu PS są mile widziane.
Ale czego właściwie nie mogę zrobić z lekami generycznymi? 1. przykład łatwo można przekonwertować na "cechę M [TM]; cecha P [TP] rozszerza M [TP]". 2. Po prostu nie kompiluje się, więc nic do konwersji ... – yura