LINUX.ORG.RU

Деструкторы в LISP


0

0

Про конструкторы объектов в LISP я уже прочитал. Почти понял... А где деструкторы? Что-то пока не нашёл. Если нет деструкторов, то кто закроет открытые в конструкторе файлы? Чего-то не понимаю...


unwind-protect

anonymous
()

Деструкторов как "протовоположности" конструкторам в CL нет. Есть finalize, но они зависят от конкретной реализации CL, т.к. не входят в стандарт. Но и это не всё. "Финализаторы" вызывает GC, так что ты понятия не имеешь, когда же произойдёт "финализация", если только сам не вызовешь GC.

А для работы с файлами есть with-open-file.

Если хочешь открывать/закрывать файлы именно в методах - можешь их написать. Но контроль за их вызовом тебе придётся тоже взять на себя.

yyk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.