TGViewer
Человек и машина Человек и машина @manandthemachine · 1.69K subscribers
Post #686 2.25K
#машины_разное

Итак, благодаря Олегу Ковалову мы знаем, что NaN не равен NaN. А как насчет nil != nil?

Я еще осваиваюсь в мире сусликового программирования и частенько захожу в чужие Pull Request’ы учиться уму разуму. Однажды мое внимание привлек следующий кусок кода:

if err == nil { 
return err
}


В комментариях затребовали незамедлительно заменить return err на return nil, указав, что так в Go делать ни в коем случае нельзя, и что “где-то выше” такой nil не будет интерпретирован как nil!

Я прихожу из змеиного мирка, где NoneType всегда NoneType, так что я пошел за советом к коллегам. Оказалось, что: 1) есть типизированный и нетипизированный nil (што); 2) nil-значения интерфейсов содержат не только само значение (nil), но и конкретный тип (*CustomError, например) (ШТО)!

Ну а error как раз Interface, так что вариантов прострелить себе руки, ноги, затылок и спину масса.

Такие дела. Прочитать подробнее можно тут:
- https://dave.cheney.net/2017/08/09/typed-nils-in-go-2
- https://golang.org/doc/faq#nil_error

Отдельное спасибо @sergdudk за разъяснение.
More from @manandthemachine
  1. Jan 17, 2026#прощальное Вы могли заметить, что из канала исчезли комменты, а чат был удален. Подробнее…
  2. Dec 31, 2025#новогоднее Если бы мне пришлось охарактеризовать 2025-ый год одним единственным словом, я…
  3. Oct 24, 2025#машины_aws Пожалуй, лучший инцидент, что я когда либо видел. Если вкратце: 1. Управление…
  4. Sep 30, 2025#машины_разное Моя любимая рубрика «Разработчики СУБД знают лучше». Вы наверняка помните,…
  5. Sep 26, 2025#пятничное Инженер-программист Шивам Баларани рассеянно смотрел в монитор. Через блеклый и…
  6. Sep 24, 2025Вот это я конечно не попал в лимиты телеграма. 🤦‍♂️
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →