defer golang что это

Аватар пользователя Даниил Першин
Даниил Першин
02 апреля 2023

defer в Golang - это ключевое слово, которое используется для отложенного выполнения функции или метода до тех пор, пока текущая функция не завершится. Когда встречается оператор defer, Golang добавляет вызов функции или метода в стек отложенных вызовов, а затем продолжает выполнение текущей функции.

defer может быть использовано для управления ресурсами, таких как файлы или сетевые соединения, чтобы гарантировать, что они будут закрыты независимо от того, как завершится функция. Он также может быть использован для обработки ошибок, когда функция должна быть завершена раньше времени.

Вот пример, который показывает использование defer для закрытия файла:

package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Open("example.txt")
    if err != nil {
        panic(err)
    }

    // Закрыть файл после завершения функции
    defer file.Close()

    // ... Код для чтения файла ...
}

В этом примере мы открываем файл example.txt и затем используем defer для закрытия файла после того, как функция завершится. Если произойдет ошибка при открытии файла, программа вызовет функцию panic, которая приведет к немедленному завершению программы.

2 0
Познакомьтесь с основами Go бесплатно

Похожие вопросы

1
ответ
1
ответ
1
ответ