Considerate che abbiamo:Argomenti della funzione: limite superiore rispetto alla classe genitore come argomento?
abstract class FlyingObject;
case class Rocket(name: String) extends FlyingObject;
qual è la differenza tra queste due dichiarazioni di funzione:
def launch[T <: FlyingObject](fo: T)
e
def launch(fo: FlyingObject)
Grande sarebbe alcuni esempi quando usare quale tipo di dichiarazione. ..
[UPDATE]
Un altro grande esempio e spiegazione può essere trovato there. È un altro esempio di quando si deve usare il limite superiore anziché solo la classe derivata come parametro.
In altre parole, è importante in particolare quando il tipo di ritorno è di tipo T. –
@LuigiPlinge: forse quando è utilizzato in qualsiasi altro punto nella firma del tipo. Per voi potrebbe volere 'def confrontare [T <: FlyingObject] (uno: T, due: T)' anche – stew