> For the complete documentation index, see [llms.txt](https://nim-ru-tutorial.gitbook.io/ibm-vala-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nim-ru-tutorial.gitbook.io/ibm-vala-guide/obzor-yazyka-programmirovaniya-vala.-chast-1/funkcii.md).

# Функции

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

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

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

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

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

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

© Copyright IBM Corporation ([www.ibm.com/legal/copytrade.shtml](http://www.ibm.com/legal/copytrade.shtml))
