Новость из категории: Информация

Язык программирования Vala: контрактное программирование и библиотека обобщенных контейнеров Gee

Содержание:
1. Hello world!;
2. Строки, массивы и управляющие конструкции ;
3. Делегаты и обобщенные классы;
4. Контрактное программирование и библиотека обобщенных контейнеров Gee
(Вы читаете данный раздел).
Контрактное программирование

Язык программирования Vala: контрактное программирование и библиотека обобщенных контейнеров Gee

Vala поддерживает базовые конструкции контрактного программирования requires и ensures:
double method_name(int x, double d) requires (x > 0 ss x = 0.0 ss d = 0.0 ss result <= 10.0)
{
return d * x;
}

Специальная «магическая» переменная result имеет тип, возвращаемый функцией.


Язык программирования Vala достаточно гибкий, с его помощью можно написать достаточно мощное и функциональное приложение, операционную среду, которая возьмет под контроль оборудование умного дома (http://www.aptech.ru/tehnologii-dom) и, конечно же, простенькую игру!

Библиотека обобщенных контейнеров Gee

Библиотека Gee в Vala выполняет ту же функцию, что STL в C++. В Gee имеются структуры данных и итераторы, но, в отличие от STL, в ней нет алгоритмов. Синтаксис шаблонных классов Gee очень похож на синтаксис C++, так что программисты, привыкшие к шаблонным контейнерам в C++, будут чувствовать себя как дома. Gee содержит несколько классов-коллекций, самыми часто используемыми из которых являются вектор ArrayList, односвязный список LinkedList и ассоциативный контейнер HashMap. Контейнеры Gee намного сильнее интегрированы в базовый язык, чем контейнеры STL. Например, любой контейнер можно использовать в циклах foreach:
var list = new ArrayList ();
list.add (1); // Добавление элементов
list.add (2); list.add (4);
list.insert (2, 3); // Вставка элемента
list.remove_at (3); // Удаление элемента
foreach (int i in list) { // Интеграция в цикл foreach
stdout.printf ("%dn", i);
}
list[2] = 10; // Доступ по индексу

Проверить наличие элемента в любом контейнере можно оператором in:
if (2 in list) { // Аналогично list.contains(2)
stdout.printf ("Двойка в списке есть!n");
}

Выводы

Появление любого нового языка программирования неизменно вызывает опасения, что он окажется очередным нежизнеспособным курьезом. Язык Vala благополучно избежал этой участи и за несколько лет своего существования уже стал достаточно популярным для написания GUI-приложений с использованием GTK+. Производительность Vala как компилируемого языка заведомо намного больше, чем у Java или С# (не говоря уже о Python), но все же многие особенности реализации не позволяют «выжать» из него такую же скорость, как из С/С++. Впрочем, это обычно и не нужно, поскольку Vala - типичный «язык продуктив-ности», склеивающий разные библиотеки и компоненты. По сути Vala - это «полностью свободный компилируемый C# без виртуальной машины». Он будет достойным дополнением к «арсеналу» любого программиста, особенно работающего с GTK+.

Рейтинг статьи

Оценка
5/5
голосов: 1
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх