Начнём с азов

Откроем в любом текстовом редакторе новый файл hello.vala и напишем самую популярную в мире программу для начинающих.

using GLib;
public class Test.HelloObject : GLib.Object
{
 public static int main( string[] args )
 {
 stdout.printf( "Привет всем!\n" );
 return 0;
 }
}

В строке 1 декларируется использование библиотеки GLib или, в терминах ООП, "использование пространства имён библиотеки GLib". Вообще говоря, пространство имён GLib включается в Vala-программу по умолчанию, так что можно было бы обойтись и без этой директивы.

Далее следует начальная строка определения класса. Всё, как обычно: модификатор области видимости, ключевое слово, идентификатор имени класса. За реализацию объектного механизма отвечает библиотека glibrary, и в этих подробностях нам разбираться совсем не обязательно. Гораздо важнее здесь то, что наш класс объявляется подклассом GLib.Object, т.е. выполняется наследование. Ограничений на определение собственных произвольных классов нет, но только "наследники" GLib.Object получают доступ к полному набору функциональных возможностей языка Vala, а именно это нам и нужно.

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

Метод main выполняет простую работу. В пространстве имён библиотеки GLib имеется объект stdout, название которого говорит само за себя. Одним из многочисленных методов, предлагаемых объектом stdout, является функция форматированного вывода printf, в которую мы передаём строку символов, как параметр. Команда return завершает работу метода и возвращает результат его выполнения. Здесь при выходе из метода main заканчивает работу и программа, а результат интерпретируется как код её завершения.

Last updated