Junior — Middle
Můžete vysvětlit, co jsou typy předávané odkazem v programovacích jazycích?
sobes.tech AI
Odpověď od AI
V programovacích jazycích znamenají typy předávané odkazem, že při předání proměnné do funkce nebo metody se ne předává kopie hodnoty, ale odkaz (ukazatel) na původní data. Změny uvnitř funkce ovlivní původní objekt.
V Go jsou primitivní typy (int, float, bool) předávány hodnotou, zatímco složitější typy, jako jsou slices, maps, pointers, channels a rozhraní, jsou předávány odkazem.
Příklad předání slice odkazem:
func modifySlice(s []int) {
s[0] = 100
}
func main() {
nums := []int{1, 2, 3}
modifySlice(nums)
fmt.Println(nums) // Vytiskne [100 2 3]
}
Funkce přijímá odkaz na slice, takže změny uvnitř funkce se odrazí na původním slice. To umožňuje efektivní práci s velkými datovými strukturami bez kopírování.