Sobes.tech
Junior — Middle

Go tilida funksiyalarga argumentlar qanday uzatiladi?

sobes.tech AI

AIdan javob

Go tilida, funksiyalardagi argumentlar qiymat bilan o'tkaziladi. Bu shuni anglatadiki, funksiyani chaqirganda, argumentlarning qiymat nusxalari o'tkaziladi va funksiyada o'zgarishlar asl o'zgaruvchilarga ta'sir qilmaydi.

Agar chaqiruvchi koddan o'zgaruvchining qiymatini o'zgartirish kerak bo'lsa, unga ko'rsatkich (pointer) o'tkaziladi. Shunda, funksiya manzilni oladi va bu manzildagi qiymatni o'zgartirishi mumkin.

Qiymat va ko'rsatkich bilan o'tkazish misoli:

package main
import "fmt"

func incrementByValue(x int) {
    x = x + 1
}

func incrementByPointer(x *int) {
    *x = *x + 1
}

func main() {
    a := 5
    incrementByValue(a)
    fmt.Println(a) // 5 ni chiqaradi, qiymat bilan o'tkazilgan

    incrementByPointer(&a)
    fmt.Println(a) // 6 ni chiqaradi, ko'rsatkich bilan o'tkazilgan
}