Указатели
Указатели Vala позволяют управлять памятью вручную. Обычно когда вы создаете экземпляр типа вы получаете указатель на него и Vala сама позаботиться о его своевременном удалении объекта, когда к нему не останутся доступные ссылки. Запрашивая указатель вместо ссылки вы берете на себя ответственность за удаление объекта, следовательно, вы получаете больший контроль над использованием памяти.
Эта функциональность не всегда необходима, т.к. современные компьютеры достаточно производительны, чтобы осуществлять подсчет ссылок и имеют достаточно памяти, поэтому небольшие потери памяти при этом не так существенны. Ручное управление памятью может понадобиться, когда:
Вы хотите оптимизировать определенную часть программы.
Когда вы работаете с библиотекой, не имеющей подсчета ссылок (если она не основана на gobject).
Для создания объекта и получения указателя на него пишем:
Для использования членов объекта:
Для освобождения памяти, на которую ссылается указатель:
Vala поддерживает извлечение адреса (&) и разыменование указателя (*):
Поведение при этом немножко отличается от ссылок, т.к. вы можете получить адрес и разыменовать во время присвоений:
Использование указателей на объекты подобно использованию бесхозяйных ссылок.
Last updated