Junior — Middle
Czy możesz wyjaśnić, czym są typy przekazywane przez referencję w językach programowania?
sobes.tech AI
Odpowiedź od AI
W językach programowania typy przekazywane przez referencję oznaczają, że podczas przekazywania zmiennej do funkcji lub metody, nie przekazuje się kopii wartości, lecz odwołanie (wskaźnik) do oryginalnych danych. Zmiany wewnątrz funkcji będą miały wpływ na oryginalny obiekt.
W Go, typy podstawowe (int, float, bool) są przekazywane przez wartość, natomiast typy złożone, takie jak slices, mapy, wskaźniki, kanały i interfejsy, są przekazywane przez referencję.
Przykład przekazywania slice’a przez referencję:
func modifySlice(s []int) {
s[0] = 100
}
func main() {
nums := []int{1, 2, 3}
modifySlice(nums)
fmt.Println(nums) // Wypisze [100 2 3]
}
Tutaj funkcja otrzymuje odwołanie do slice’a, więc zmiany wewnątrz funkcji odzwierciedlają się na oryginalnym slice’u. Pozwala to na efektywną pracę z dużymi strukturami danych bez kopiowania.