Как вернуть ошибку из функции

Для обычной ошибки достаточно стандартного errors.New. Если нельзя использовать даже стандартные пакеты, объявите строковый тип с методом Error() string.

Короткий ответ

Что ответить на собеседовании

Для обычной ошибки достаточно стандартного errors.New. Если нельзя использовать даже стандартные пакеты, объявите строковый тип с методом Error() string.

Подробный разбор

Ответ с пояснениями

Условие

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

func main() {
  println(handle())
}

func handle() error {
}

Ответ

Для обычной ошибки достаточно стандартного errors.New. Если нельзя использовать даже стандартные пакеты, объявите строковый тип с методом Error() string.

Вариант без импортов:

type textError string
func (e textError) Error() string { return string(e) }
func handle() error { return textError("operation failed") }
func main() {
    if err := handle(); err != nil { println(err.Error()) }
}

Встроенный println(err) не предназначен для пользовательского форматирования интерфейса и не обязан вызывать Error. Для нормального приложения обычно используют fmt или логгер, а nil возвращают в случае успеха.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее