Esistono due modi per esprimere l'astrazione sui tipi.Esiste un esempio di utilizzo di scala astratta che è impossibile ottenere con i generici?
abstract class Buffer {
type T
val element: T
}
piuttosto che generici, ad es.
abstract class Buffer[T] {
val element: T
}
Comprendo i vantaggi nell'usabilità dell'utilizzo di approcci diversi in diversi contesti. Ma sono interessato ad esempi in cui è assolutamente impossibile convertire la versione di Abstract Type in quella di Generic.
Gli snippet di codice PS sono i benvenuti.
Ma cosa in realtà non posso fare con i generici? 1. esempio può facilmente essere convertito in "tratto M [TM]; tratto P [TP] estende M [TP]". 2. Semplicemente non si compila così niente da convertire ... – yura