# Аннотации

Аннотации позволяют привязать произвольную мета-информацию к функциям, методам класса и самим классам (т.е. наделить их каким-то признаками). Сами по себе аннотации не имеют предопределенного смысла: они нужны для того, чтобы разработчик фреймворка мог выбрать и обработать набор функций, методов или классов по некоторым признакам с использованием интроспекции. Например,

  • во фреймворке для тестирования аннотациями помечаются тестовые сценарии

  • классы-обработчики могли бы помечаться аннотацией Обработчик, чтобы отличать их от обычных классов

Синтаксис аннотаций уникален для языка "Стек":

:[
   Аннотация1(
      параметр1 = 5,
      параметр2 = "строка"
   ),
   Аннотация2
]
Функция Фн()
{

}

Функция Фн имеет две аннотации с именами Аннотация1 и Аннотация2. Аннотация1 имеет два параметра, которые перечислены в скобках после ее имени, Аннотация2 - не имеет параметров (пустые скобки можно не писать). Параметры аннотации могут идти в любом порядке.

Примеры использования аннотаций будут приведены далее в разделе "Тестирование".