Выбор ответа Junior Дженерики обновлено

Нулевое значение параметра типа

Вопрос

Как вернуть нулевое значение типа T из обобщённой функции?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: var zero T; return zero. Нулевое значение получают объявлением переменной: для любых T это работает. nil подходит не для всех типов (у int нет nil).

Варианты ответа

  1. var zero T; return zeroправильный ответ
  2. return nil, nil есть у любого T
  3. return T{} для любого типа T
  4. return 0, он приводится к T

Разбор

Нулевое значение получают объявлением переменной: для любых T это работает. nil подходит не для всех типов (у int нет nil). T{} работает только для составных типов, а T может быть int. 0 годится только для чисел. Для краткости в Go 1.18+ можно написать return *new(T), но var zero T читается лучше.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.