2010-09-07 6 views
1

J'ai le bit suivant de la syntaxe:Syntaxe Haxe; que signifie ce qui suit?

Void -> Void 
//in context example 
private var _onClickEvents : List < Void -> Void > ; 

qui semble être accepté comme une définition de type, la même que celle Bool ou TextField. Je présume qu'il a une utilisation similaire à la façon dont Haskell définit les signatures de type de fonction?

+0

Pouvez-vous s'il vous plaît ajouter son concours? – rkellerm

Répondre

5

static public function sayHello() : String { return "hi!"; }

est de type: Void -> String

Le dernier élément est le type des renvoyée par la fonction; Les éléments précédents sont les types d'arguments.

static public function factory(generator : String -> String -> String, times : Int) : Int -> String;

considérer cette fonction qui prend comme arguments une fonction (avec 2 arguments, et qui renvoie une chaîne) et une valeur de nombre entier et renvoie une fonction.

Son type est: (String -> String -> String) -> Int -> (Int -> String)

Si vous êtes dans le doute ce que le type correct est, vous pouvez toujours utiliser la commande type. Il est utilisé au moment de la compilation et retourne dans la console du type de son argument:

type(factory);

Si imprimer ce que je l'ai écrit ci-dessus.