Spec-Zone .ru
спецификации, руководства, описания, API

Функциональные Типы

Функциональный тип представляет набор функциональных определений с данной подписью - то есть, функции, у которых есть данные типы параметра и тип возврата.

Например, переменная myFunc объявляется как имение функционального типа:

var myFunc : function(:Object,:Integer):String;

Переменная myFunc может содержать функциональные определения, которые берут Объект и Целое число как параметры, и возвращает Строку.

У функциональных типов есть нуль как их значение по умолчанию. Так, myFunc является первоначально нулем, мы можем дать этому значение присвоением или инициализацией. Это было бы допустимым присвоением на myFunc:

myFunc = function(obj : Object, k : Integer) { "Here is the Object: {obj}, and the Integer: {k}" }

Функциональное определение, в настоящий момент сохраненное в myFunc, можно вызвать как любая другая функция:

println( myFunc(4s, 777) );
println( myFunc(null, 1234) );

Который напечатал бы:

Here is the Object: 4000.0ms, and the Integer: 777
Here is the Object: null, and the Integer: 1234

Переменная, конечно, может быть повторно присвоена любой функции с теми параметрами и типом возврата:

myFunc = function(obj : Object, k : Integer) { "So!" }