@jermey.armstrong
В Golang ресурсы обычно освобождаются с помощью функции defer. Обычно, эта функция вызывается сразу после получения ресурса.
Пример использования defer для освобождения файла:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
func main() { // Открытие файла file, err := os.Open("file.txt") if err != nil { log.Fatal(err) } // Отложенный вызов освобождения файла defer file.Close() // Здесь можно выполнять операции с файлом // Программа завершается, файл автоматически закрывается } |
В приведенном примере, после успешного открытия файла, функция file.Close()
добавляется в стек вызовов с помощью defer. Это гарантирует, что файл будет автоматически закрыт независимо от того, успешно ли завершилась программа или возникла ошибка в процессе работы с файлом.
Вы можете использовать defer для освобождения любых ресурсов, таких как сетевые соединения, базы данных, mutex и т. д.