En regardant ce tutorial CoffeeScript : http://jashkenas.github.com/coffee-script/
Je ne vois pas tout ce qui concerne les Splats. Quelle est cette construction ? D'où il vient (historiquement)
En regardant ce tutorial CoffeeScript : http://jashkenas.github.com/coffee-script/
Je ne vois pas tout ce qui concerne les Splats. Quelle est cette construction ? D'où il vient (historiquement)
Le terme "splat opérateur" vient de Ruby, où l' *
caractère (parfois appelé le "splat"-voir le Jargon du Fichier d'entrée) est utilisé pour indiquer qu'une entrée dans une liste d'arguments doit "absorber" une liste d'arguments.
CoffeeScript adopté style Ruby splats très tôt (voir question 16), mais à Douglas Crockford à la suggestion de la syntaxe a changé à partir d' *x
de x...
un couple de semaines plus tard (voir la question 45). Néanmoins, CoffeeScripters se réfèrent encore à la syntaxe comme le "splat" ou "splat opérateur."
De ce fait, ils le font, splats tranche de l' arguments
objet de telle manière que le splatted argument devient un tableau de tous les "extra" des arguments. La plupart des exemple trivial est
(args...) ->
Dans ce cas, args
sera simplement un tableau copie de arguments
. Splatted arguments peuvent provenir soit avant, après ou entre la norme arguments:
(first, rest...) ->
(rest..., last) ->
(first, rest..., last) ->
Dans les deux premiers cas, si la fonction reçoit 0-1 arguments, rest
sera un tableau vide. Dans le dernier cas, la fonction doit recevoir plus de 2 arguments pour rest
non vide.
Depuis JavaScript ne permet pas de signatures multiples pour les fonctions avec le même nom (la voie C et Java), splats sont un gain de temps énorme pour faire face à un nombre variable d'arguments.
Je pense que c’est un sucre syntaxique pour arguments objet javascript.
L’idée peut venir de ruby forme opérateur splat `` .
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.