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