Scala Newb ... Je suis confus
object myApp extends App { println("Echo" + (args mkString " ")) }
3 Réponses :
Je ne suis pas un expert Scala (loin de là!) Mais je pense que la réponse est la réponse implicite (voir En particulier, PREDEF a La conversion implicite suivante: p> et wraparray a une méthode mkstring. Lorsque SCALA ne peut pas trouver une méthode mkstring sur la matrice, elle cherche une conversion implicite sur un type qui fait. P> http://www.scala-lang.org/api/current/scala/predef $ .html p> http://www.scala-lang.org/api/current/scala/ Collection / mutable / wradafry.html p> p> scala.predef code>) et wraparray.scala.
Merci, je n'avais pas la tête des conversions implicites. Wrapaparray et Vector Obtenez la méthode Mkstring à partir du trait TraversableVerce qu'ils partagent. Peut-être utile si Scaladoc vous a dit dans la définition d'une classe ce que les défenseurs implicites existaient?
Élargir sur la réponse de Kevin et expliquer pourquoi il n'est peut-être pas que pour Scaladoc em> vous dire quelle conversion implicite existe: les conversions implicites entrent en jeu lorsque votre code ne compilerait pas autrement. Vous pouvez voir En tant que mécanisme de récupération d'erreur pour les erreurs de type activés lors de la compilation. Dans ce cas, Il arrive que Découvrez quelle conversion implicite s'applique peut être effectuée en compilant avec le drapeau afin que vous puissiez voir que donc avec ça Dans l'esprit, vous pouvez voir pourquoi scaladoc em> pour Vous pouvez même définir votre propre conversion implicite: p> qui aurait le suivant Effet: p> évidemment scaladoc ne sera pas capable de montrer cela. Notez que le bouchon Eclipse Scala peut vous amener à la mise en oeuvre de array [string] code> n'a pas de méthode code> mkstring code>. Ce code ne compilerait pas, car cette méthode n'existe pas sur
Array [t] code>. Mais avant d'abandonner le compilateur cherchera une conversion implicite dans la portée. P>
Predef code> apporte un certain nombre de conversions implicites dans la portée et une application qui s'appliquera ici. p>
-XPrint: TYPER code>. Dans ce cas, il imprimerait: p>
pref.refarrayops code> est en fait la conversion implicite utilisée. Il convertit votre tableau en un
Arrayops [stress] code> qui a un
mkstring code> méthode
. p> tableau code> ne peut pas vous dire quelle conversion implicite pourrait s'appliquer. Cela pourrait être n'importe quoi. Il est en fait totalement basé sur le fait qu'il n'y a pas de méthode de ce type. Seul le compilateur saura ce que l'implicite a trouvé sur la base du code. P>
mkstring code> en appuyant sur F3 (vous allez vous retrouver dans
TraversableOnce code>). p> p>
Merci pour l'explication détaillée :)
Mais Scaladoc pourrait au moins dire que Prefef (qui est spécial parce qu'il est toujours dans la portée) a une conversion implicite de la matrice. Ce serait utile. p>