J'ai lu du code source java qui inclut le code source Scala.
Je trouve Nil.$colon$colon(Object arg)
Qu'est-ce que les mots-clés $colon
signifie? Et que signifie cette ligne?
J'ai lu du code source java qui inclut le code source Scala.
Je trouve Nil.$colon$colon(Object arg)
Qu'est-ce que les mots-clés $colon
signifie? Et que signifie cette ligne?
$ deux points est un mangling pour le symbole:. Puisque: (et d'autres lettres) est une lettre illégale dans java pour les noms de méthodes mais autorisée dans scala, une stratégie est nécessaire pour l'encoder dans un nom légal. Par conséquent, le $ côlon
Ici, votre code traduit en arg :: Nil qui ajoute arg à la liste vide, en construisant une liste avec arg en tant qu'élément unique.
Depuis que je comprends votre réponse, je voudrais demander: Qu'est-ce que «mangling» signifie exactement? – enguerran
Cela signifie essentiellement avoir un identifiant différent utilisé pour l'exécution que ce qui est présent dans le code source. Voir http://en.wikipedia.org/wiki/Name_mangling. –