Sobes.tech
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.