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);
Должен напечатать то, что я написал выше.