Scala Chaîne vs java.lang.Chaîne - l'inférence de type

Dans le REPL, je définir une fonction. Remarque le type de retour.

scala> def next(i: List[String]) =  i.map {"0" + _} ::: i.reverse.map {"1" + _}
next: (i: List[String])List[java.lang.String]

Et si je spécifier le type de retour en tant que Chaîne de

scala> def next(i: List[String]): List[String] = i.map {"0" + _} ::: i.reverse.map {"1" + _}
next: (i: List[String])List[String]

Pourquoi la différence? Je peux aussi préciser le type de retour de Liste en tant que[Tout], donc je suppose que la Chaîne est juste un wrapper supertype de java.lang.Chaîne de caractères. Sera-ce de ont aucune incidence pratique ou puis-je sans risque de ne pas spécifier le type de retour?

InformationsquelleAutor Luigi Plinge | 2011-07-02