Sobes.tech
Junior — Middle

Puteți explica ce sunt tipurile transmise prin referință în limbajele de programare?

sobes.tech AI

Răspuns de la AI

În limbajele de programare, tipurile transmise prin referință înseamnă că, atunci când se transmite o variabilă către o funcție sau metodă, nu se transmite o copie a valorii, ci o referință (pointer) către datele originale. Modificările din interiorul funcției vor afecta obiectul original.

În Go, tipurile primitive (int, float, bool) sunt transmise prin valoare, în timp ce tipurile complexe, cum ar fi slices, maps, pointers, channels și interfaces, sunt transmise prin referință.

Exemplu de transmitere a unui slice prin referință:

func modifySlice(s []int) {
    s[0] = 100
}

func main() {
    nums := []int{1, 2, 3}
    modifySlice(nums)
    fmt.Println(nums) // Va afișa [100 2 3]
}

Aici, funcția primește o referință la slice, astfel încât modificările din interiorul funcției se reflectă asupra slice-ului original. Acest lucru permite lucrul eficient cu structuri de date mari fără copiere.