Проверяет знание двух функций аллокации памяти в Go и их предназначения.
new(T) выделяет нулевой T и возвращает *T. make(T, ...) инициализирует и возвращает готовые к работе срезы, мапы и каналы (типы-руководители), но не применяется к простым структурам.
new:
Возвращает указатель *T на новый нулевой объект.
Применим ко всем типам.
make:
Только для встроенных типов: slice, map, chan.
Возвращает значение самого типа, настроенное для использования (len, cap, хэш-структуры, буфер).
Пример:
p := new(int) // *int = 0
s := make([]int,5) // []int длины 5, готов к appendВывод:
new для простых аллокаций, make для сложных типов с внутренними структурами.