@VadimRublev
Go, front-end (ванильный).

Суть функции IsNotExist()?

В чём смысл функции os.IsNotExist()? Она ведь использует функцию os.Stat(), получая её ошибку - if _, err := os.Stat(filename); os.IsNotExist(err) { ... }.
( Инфо: https://golang.org/pkg/os/#IsNotExist )
Почему не использовать просто функцию os.Stat()? (Как некоторые и делают.)

И попутно: функция IsNotExist() возвращает true - если файл не существует, и false - если файл существует? Т. е.?:
if _, err := os.Stat(filename); os.IsNotExist(err) {
fmt.Println("file does not exist") - это_true
} else {
_файл_найден_ - это_false
}
  • Вопрос задан
  • 1671 просмотр
Решения вопроса 1
@ghostiam
На Go писатель, серверов пинатель.
os.IsNotExist(err) проверяет ошибку, что это ошибка отсутствия файла, можно проверять ошибку не только Stat, но и ошибку при открытии файла.

Stat может вернуть не только ошибку не найденного файла, но и ошибку ввода/вывода, таймаут и ещё букет ошибок, для этого и используется доп проверка ошибки os.IsNotExist(err)

Не верное заключение по поводу примера кода, верно так:
_, err := os.Stat(filename)
if err != nil {
    if os.IsNotExist(err) {
        fmt.Println("file does not exist") // это_true
    } else {
    // другая ошибка  - это_false
    }
} else {
    // тут файл существует 
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы