Junior — Middle
Pouvez-vous expliquer les mécanismes internes de la fonction Make?
sobes.tech IA
Réponse de l'IA
En Go, la fonction make est utilisée pour créer et initialiser des slices, des maps et des channels. Elle alloue de la mémoire et retourne un objet initialisé du type nécessaire.
En interne, make:
- Alloue de la mémoire pour la structure de données et les buffers internes.
- Initialise les champs de service (par exemple, la longueur et la capacité du slice).
- Pour les slices, alloue un tableau avec la capacité spécifiée, renvoyant un slice avec la longueur et la capacité.
- Pour les maps, crée une table de hachage avec une taille initiale.
- Pour les channels, crée un buffer avec la capacité indiquée.
Exemple :
s := make([]int, 5, 10) // slice de longueur 5, capacité 10
m := make(map[string]int, 10) // map avec capacité initiale 10
ch := make(chan int, 5) // channel avec buffer de 5 éléments
Ainsi, make est un mécanisme intégré pour créer et initialiser des types de données complexes, différent de new, qui alloue simplement de la mémoire sans initialisation.