Что такое make vs new?

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

make — создаёт slice, map или channel и возвращает инициализированное значение (не указатель). new — выделяет память для любого типа и возвращает указатель на zero value. make([]int, 5) — слайс длины 5. new(int) — указатель на 0. Ключевое отличие: make реально инициализирует внутренние структуры (slice header, hash table для map, channel buffer). new просто зануляет память. Для slice, map, channel используй make. Для структур чаще используют &MyStruct{} вместо new(MyStruct) — это идиоматичнее.

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

Что такое bridge network?