Junior — Middle
Можете ли да објасните шта су типови пренесени по референци у програмским језицима?
sobes.tech АИ
Одговор од АИ
U programskim jezicima, tipovi koji se prosleđuju putem referenci znače da, prilikom prosleđivanja promenljive funkciji ili metodu, ne prosleđuje se kopija vrednosti, već referenca (pokazivač) na originalne podatke. Promene unutar funkcije će uticati na originalni objekat.
U Go jeziku, primitivni tipovi (int, float, bool) se prosleđuju po vrednosti, dok se složeni tipovi, kao što su slice-ovi, mape, pokazivači, kanali i interfejsi, prosleđuju putem referenci.
Primer sa prosleđivanjem slice-a putem reference:
func modifySlice(s []int) {
s[0] = 100
}
func main() {
nums := []int{1, 2, 3}
modifySlice(nums)
fmt.Println(nums) // Ispisaće [100 2 3]
}
Ovde funkcija prima referencu na slice, pa promene unutar funkcije odražavaju se na originalni slice. Ovo omogućava efikasn rad sa velikim strukturama podataka bez kopiranja.