Junior — Middle
Meg tudná magyarázni a Make funkció belső működési mechanizmusait?
sobes.tech MI
Válasz az MI-től
Go nyelvben a make függvényt slice-ok, térképek (map) és csatornák (channel) létrehozására és inicializálására használják. Memóriát foglal és egy inicializált objektumot ad vissza a szükséges típusból.
Belsőleg a make:
- Memóriát foglal az adatszerkezethez és a belső pufferhez.
- Inicializálja a szolgáltatási mezőket (pl. a slice hosszát és kapacitását).
- Slice-ok esetén, egy megadott kapacitású tömböt foglal, és egy olyan slice-ot ad vissza, amelynek hosszúsága és kapacitása megegyezik a megadott értékekkel.
- Térképek esetén, egy kezdő méretű hash táblát hoz létre.
- Csatornák esetén, egy megadott kapacitású pufferrel rendelkező csatornát hoz létre.
Példa:
s := make([]int, 5, 10) // slice hosszú 5, kapacitású 10
m := make(map[string]int, 10) // térkép kezdő kapacitással 10
ch := make(chan int, 5) // csatorna pufferrel 5 elemre
Így a make egy beépített mechanizmus a komplex típusok létrehozására és inicializálására, amely különbözik a new-tól, amely csak memóriát foglal, de nem inicializál.