Junior — Middle
Ce tipuri în limbajul Go conțin în interiorul lor un pointer către un segment de memorie?
sobes.tech AI
Răspuns de la AI
În limbajul Go, următoarele tipuri conțin intern un pointer către un segment de memorie:
- Slices (felii) — structura conține un pointer către un array, lungimea și capacitatea.
- Maps (hărți) — implementate intern prin intermediul pointerilor către o tabelă hash.
- Channels (canale) — conțin un pointer către structura internă a canalului.
- Interfețe (interfaces) — conțin un pointer către tabelul de metode și un pointer către date.
Tipurile primitive (int, float, bool etc.) și array-urile nu conțin pointeri intern, cu excepția cazului în care se utilizează explicit pointeri.
De exemplu, un slice arată astfel:
var s []int = []int{1, 2, 3}
// s conține un pointer către un array [1,2,3], lungimea și capacitatea
Acest lucru permite lucrul eficient cu seturi mari de date fără copiere.