Sobes.tech
Junior — Middle

როგორ ხორციელდება არგუმენტების გადაცემა ფუნქციებში Go ენისთვის?

sobes.tech AI

პასუხი AI-სგან

Go ენის პროგრამაში ფუნქციებში არგუმენტები მნიშვნელობით გადაეცემა. ეს ნიშნავს, რომ ფუნქციის გამოძახებისას გადაეცემა არგუმენტების მნიშვნელობების ასლი, და ფუნქციის შიგნით ცვლილებები არ ახდენს ორიგინალურ ცვლადებზე გავლენას.

თუ გსურთ შეცვალოთ ცვლადის მნიშვნელობა გამოძახების კოდიდან, გადაეცემა ამ ცვლადის მაჩვენებელი. მაშინ, ფუნქცია იღებს მისამართს და შეუძლია შეცვალოს ამ მისამართზე არსებული მნიშვნელობა.

მნიშვნელობის და მაჩვენებლის გადაცემის მაგალითი:

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, რადგან მნიშვნელობით გადაეცა

    incrementByPointer(&a)
    fmt.Println(a) // გამოიტანს 6, რადგან მაჩვენებლით გადაეცა
}