Пространства имён
Всё, что внутри скобок, находится в пространстве имён NameSpaceName и доступ к нему должен производится соответствующим образом. Код за пределами этого пространства имён должен указывать полное имя (включая имя пространства имён) для всего что находится внутри этого пространства имён, или же, с помощью директивы using, импортировать это пространство имён.
Например, если пространство Gtk импортировано директивой using Gtk;
вы можете написать просто Window
, вместо Gtk.Window
. Полностью квалифицированное имя будет необходимо лишь в случае неопределённости, например между GLib.Object
и Gtk.Object
.
Пространство имён GLib импортируется по умолчанию. Представьте невидимую строку using GLib;
в начале каждого файла с кодом на Vala.
Всё, что вы не положите в некое пространство имён, располагается в анонимном глобальном пространстве имён. Если для избежания двусмысленности вам нужно явно обратиться к глобальному пространству имен, вы можете сделать это с помощью префикса global::
.
Пространства имён могут быть вложенными, путём вложения одного определения в другое, или же давая имена в виде NameSpace1.NameSpace2
.
Некоторые другие типы определений могут быть объявлены внутри некого пространства имён используя то же соглашение по именованию, например class NameSpace1.Test { ... }
. Обратите внимание, что конечном итоге, определение будет находится в пространстве имён, в которое вложено объявление, плюс пространство имён, объявленное в определении.
Last updated