🟡 Средний · 2 очк. Разное / продвинутое
В чём разница между make и new?
A Ничем
B make - для slice/map/chan, new - возвращает указатель
C new - для slice, make - для struct
D make устарел
Объяснение вопроса

make только для slice, map и channel: создаёт и инициализирует значение, возвращает его (не указатель). new(T) выделяет память под zero value типа T и возвращает *T.

s := make([]int, 0, 10)  // слайс, готов к использованию
m := make(map[string]int) // пустая map
p := new(int)             // *int, значение 0

Для slice, map и channel new вернёт nil-указатель на дескриптор; для использования нужен make.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.