Haxe синтаксис;что означает следующее? - PullRequest
1 голос
/ 07 сентября 2010

У меня есть следующий бит синтаксиса:

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

, который, кажется, принимается как определение типа, так же, как Bool или TextField.Я предполагаю, что он имеет аналогичное использование, как Haskell определяет сигнатуры типов функций?

1 Ответ

5 голосов
/ 07 сентября 2010

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

имеет тип: Void -> String

Последний элемент - это тип, который возвращает функция;предыдущие элементы являются типами аргументов.

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

Рассмотрим эту функцию, которая принимает в качестве аргументов одну функцию (с двумя аргументами и которая возвращает строку) и целочисленное значение и возвращаетфункция.

Его тип: (String -> String -> String) -> Int -> (Int -> String)

Если вы сомневаетесь в правильности типа, вы всегда можете использовать команду type.Он используется только во время компиляции и возвращает в консоли тип аргумента:

type(factory);

Должен напечатать то, что я написал выше.

...