Когда использовать new?

Junior
268 просмотров
AFK Offer AI

Честно — почти никогда в обычном коде. new(T) возвращает *T с zero value. Но &T{} делает то же самое и позволяет сразу задать поля: &User{Name: "Alice"}. new(User) вернёт указатель на пустого юзера — потом надо заполнять поля отдельно. new бывает полезен в generic коде или когда нужен указатель на примитив: p := new(int) — указатель на 0. В целом &T{} более идиоматичен и чаще используется. new существует скорее для полноты языка.

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

Задача: что выведет этот код? goroutine захватывает переменную цикла