Функции

В основу заложены функции языка С, поэтому Vala-функции принимают любое количество аргументов и возвращают одно значение. После имени функции и списка аргументов в скобках может следовать не обязательное ключевое слово throws и идентификатор перехватываемого исключения (ошибки).

Нововведением являются анонимные функции, более известные под названием ламбдафункции. Для определения анонимной функции используется специальный оператор =>. Рассмотрим пример:

fun1( an => { stdout.printf("%d\n",an); }, 3 );

Функция fun1 вызывается со ссылкой на анонимную (она действительно не имеет имени) функцию, которая принимает один аргумент и выводит его значение. Отметим, что в данном случае ни тип параметра, ни тип возвращаемого значения не задаётся явно, а определяется динамически.

Внимание: авторы Vala предупреждают, что работа над поддержкой ламбда-функций ещё не завершена. В настоящее время область действия ламбда-функции ограничена экземпляром класса, в котором она определена.

На этом завершается обобщённый обзор языка программирования Vala. Объектно-ориентированное программирование на Vala, расширенные возможности языка, а также применение штатных инструментальных средств и утилит будет рассмотрено в следующих статьях цикла.

© Copyright IBM Corporation (www.ibm.com/legal/copytrade.shtml)

Last updated