Что такое sentinel value?

Middle
139 просмотров
AFK Offer AI

Предопределённая ошибка на уровне пакета, например io.EOF или sql.ErrNoRows. Создаётся через var ErrNotFound = errors.New("not found"). Проверяется через errors.Is(err, ErrNotFound). Полезна когда вызывающий код должен различать типы ошибок и реагировать по-разному. Не стоит создавать sentinel для каждой ошибки — только для тех, на которые caller реагирует.

Следующий вопрос

Что выведет: switch 1 { case 1: fmt.Println("one"); case 2: fmt.Println("two") }?