proposal 61489: add built-in null for zero value of pointers - немножко странного в этот пятничный вечер.
Иэн Ланс Тейлор (один из ключевых разработчиков компилятора и языка Go) предлагает добавить предопределенный идентификатор null
в язык. И нет, это не первоапрельская шутка: новый идентификатор будет работать аналогично nil
, но только для типов-указателей. Согласно задумке автора, это изменение поможет лучше понимать, что выражение err != nil
не гарантирует отсутствие нулевого указателя на данные внутри переменной интерфейса.
В дальнейшей части документа рассказывается про переход на новые правила и возможное введение запрета на присваивание nil
указателям в будущих версиях Go. Однако все остальные типы (slice
/map
/interface
/chan
) будут продолжать использовать nil
.
Иэн признает, что предложение скорее всего будет отклонено, но ему было важно записать эту идею, что-бы в будущем люди могли ссылаться на нее при обсуждении проблемы typed nil
и поиска решений для нее.
>>Click here to continue<<