Деструктор

Не смотря на то что Vala управляет памятью за вас, необходимо добавить свой собственный деконструктор, если вы желаете управлять памятью при помощи указателей (об этом позже), или если вам нужно освободить ресурсы. Синтаксис как и в C#/C++:

class Demo : Object {
    ~Demo() {
        stdout.printf("in destructor");
    }
}

Так как управление памятью в Vala основано на подсчете ссылок, а не на отслеживающем сборщике мусора, деструкторы вызываются детерминированно и позволяют использовать паттерн RAII для управления ресурсами(закрытие потоков, соединений с базой данных, ...).

Last updated