// Необходимо реализовать функцию,

В Go интерфейс error — это просто тип с методом Error() string. Чтобы вернуть объект типа error без использования пакета errors, можно определить собственный тип, реализующий этот интерфейс.

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

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

В Go интерфейс error — это просто тип с методом Error() string. Чтобы вернуть объект типа error без использования пакета errors, можно определить собственный тип, реализующий этот интерфейс.

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

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

Условие

// Необходимо реализовать функцию, // которая бы возвращала ошибку без импорта пакетов из стандартной библиотеки или сторонних пакетов.

func Handle() (err error) { return }

Ответ

В Go интерфейс error — это просто тип с методом Error() string. Чтобы вернуть объект типа error без использования пакета errors, можно определить собственный тип, реализующий этот интерфейс.

Пример:

package main

import "fmt"

// Собственный тип ошибки
type MyError struct {
    Msg string
}

// Реализация интерфейса error
func (e MyError) Error() string {
    return e.Msg
}

func doSomething() error {
    return MyError{Msg: "что-то пошло не так"}
}

func main() {
    err := doSomething()
    if err != nil {
        fmt.Println(err.Error())
    }
}

Таким образом, можно создавать ошибки без использования стандартного пакета errors.

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

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

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

Подробнее