/ / Dans scala map, filter, grouby sont des fonctions ou des méthodes - scala

En scala map, filter, grouby sont des fonctions ou des méthodes - scala

Je suis nouveau à Scala. J'ai besoin de comprendre une idée de base.

En scala, nous avons carte, filtre, groupePar etc.

Sont-ils des fonctions? ou sont-ils des méthodes?

Réponses:

5 pour la réponse № 1

Ce sont des méthodes. Voir, par exemple la scala.collection.GenTraversableLike.map méthode.

Il n’existe pas vraiment de fonctions dans le langage Scala Core.

Fondamentalement, le support des fonctions dans Scala est similaire à Java: tout objet ayant une méthode appelée apply, peut être utilisé comme une "fonction". Il y a un certain nombre de traits dans la bibliothèque standard de Scala, appelée Function0[+R], Function1[-T1, +R], Function2[-T1, -T2, +R], Function3[-T1, -T2, -T3, +R], etc., qui peuvent être instanciés en utilisant une syntaxe littérale spéciale comme celle-ci:

val fn = (i: Int, j: Int) => i + j

Il y a deux idées sur ce que signifie être une "fonction" dans Scala:

  • l'étroit: une instance de l'un des FunctionN traits, ou
  • le général: tout objet qui a un apply méthode.

map, filter, groupByne sont ni des objets, ni des objets. Ce sont des méthodes.


0 pour la réponse № 2

Ce sont des fonctions d'ordre supérieur fournies par de nombreuses classes Scala et peuvent être utilisées pour composer d'autres fonctions.

http://docs.scala-lang.org/tutorials/tour/higher-order-functions.html

Ces fonctions d'ordre supérieur peuvent être des méthodes si (à partir de Scala doc) "Une méthode est une fonction membre de quelque classe, trait ou objet singleton."