f, err := os.Create("file.txt")
if err != nil {
return err
}
defer f.Close()
Однако, для файлов с возможностью записи это может быть опасно, так как метод
Close() может вернуть ошибку, которая игнорируется при использовании defer. Ошибки могут возникать на этапе закрытия файла, когда система завершает запись данных на диск. Чтобы избежать потери данных, важно проверять ошибки явным образом:
f, err := os.Create("file.txt")
if err != nil {
return err
}
if _, err := f.Write([]byte("Hello, world!")); err != nil {
f.Close()
return err
}
return f.Close()
Использование
defer безопасно для чтения, но для записи стоит быть осторожнее и проверять ошибки вручную.👉 Подробнее