Урок 50 · Задача 2

CodeError: кастомный Is

Тип ошибки может определить свой Is, и тогда errors.Is сравнивает по смыслу, а не по ==. Реализуйте Error() (текст "код ") и Is(target error) (сравнить только коды, игнорируя msg) для codeError.

00:00:00
Показать решение
GolangРешение
func (e codeError) Error() string {
	return fmt.Sprintf("код %d", e.code)
}

func (e codeError) Is(target error) bool {
	t, ok := target.(codeError)
	if !ok {
		return false
	}
	return e.code == t.code
}
Наш сайт собирает куки. Чтобы тебе было удобнее им пользоваться. Нажимая на кнопку, ты даёшь разрешение собирать куки