Junior — Middle
Môžete vysvetliť, čo sú typy odovzdávané odkazom v programovacích jazykoch?
sobes.tech AI
Odpoveď od AI
V programovacích jazykoch znamenajú typy, ktoré sa odovzdávajú odkazom, že pri odovzdaní premennej do funkcie alebo metódy sa ne odovzdáva kópia hodnoty, ale odkaz (ukazovateľ) na pôvodné dáta. Zmeny vo vnútri funkcie ovplyvnia pôvodný objekt.
V Go sú primitívne typy (int, float, bool) odovzdávané hodnotou, zatiaľ čo zložité typy, ako sú slices, maps, pointers, channels a rozhrania, sú odovzdávané odkazom.
Príklad s odovzdaním slice odkazom:
func modifySlice(s []int) {
s[0] = 100
}
func main() {
nums := []int{1, 2, 3}
modifySlice(nums)
fmt.Println(nums) // Vytlačí [100 2 3]
}
Funkcia prijíma odkaz na slice, takže zmeny vo vnútri funkcie sa odrazia na pôvodnom slice. To umožňuje efektívnu prácu s veľkými dátovými štruktúrami bez kopírovania.