Junior — Middle
Puteți explica mecanismele interne ale funcției Make?
sobes.tech AI
Răspuns de la AI
În Go, funcția make este utilizată pentru a crea și inițializa slice-uri, hărți (map-uri) și canale (channel-e). Alocă memorie și returnează un obiect inițializat de tipul necesar.
Intern, make:
- Alocă memorie pentru structura de date și buffer-ele interne.
- Inițializează câmpurile de serviciu (de exemplu, lungimea și capacitatea slice-ului).
- Pentru slice-uri, alocă un array cu capacitatea specificată, returnând un slice cu lungimea și capacitatea respective.
- Pentru hărți, creează o tabelă hash cu dimensiunea inițială.
- Pentru canale, creează un buffer cu capacitatea indicată.
Exemplu:
s := make([]int, 5, 10) // slice cu lungimea 5, capacitatea 10
m := make(map[string]int, 10) // hartă cu capacitatea inițială 10
ch := make(chan int, 5) // canal cu buffer de 5 elemente
Astfel, make este un mecanism încorporat pentru crearea și inițializarea tipurilor de date complexe, diferit de new, care doar alocă memorie fără inițializare.