113 votes

Que signifie « Mouchetures » dans le tutoriel de CoffeeScript ?

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)

198voto

Trevor Burnham Points 43199

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.

13voto

keppla Points 920

Si vous connaissez python, à peu près similaire à , car elle permet de traiter les paramètres d’une fonction comme liste

par exemple :

Il fonctionne en assginments, aussi :

6voto

Jeff Foster Points 22175

Mouchetures est le terme pour l’utilisation de la `` opérateur pour var-args (fonctions qui prennent un nombre variable d’arguments).

3voto

Zifei Tong Points 1044

Je pense que c’est un sucre syntaxique pour arguments objet javascript.

L’idée peut venir de ruby forme opérateur splat `` .

Prograide.com

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.

Powered by:

X