Что возвращает New

«Что возвращает New» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

New в Go — это функция-конструктор, которая возвращает указатель на новый экземпляр типа. Например, new(T) выделяет память под тип T, инициализирует его нулевыми значениями и возвращает *T.

type User struct {
    Name string
    Age  int
}

func main() {
    u := new(User) // *User с Name="" и Age=0
    fmt.Printf("%+v", u) // &{Name: Age:0}
}

Альтернатива — &T{}, который также создаёт указатель, но позволяет сразу инициализировать поля.

u := &User{Name: "Alice"} // явная инициализация

Разница: new только выделяет память, а &T{} может инициализировать структуру.