Sobes.tech
Junior — Middle

Hogyan történik az argumentumok átadása a Go nyelvben?

sobes.tech MI

Válasz az MI-től

A Go nyelvben a függvényekben az argumentumokat érték szerint adják át. Ez azt jelenti, hogy a függvényhíváskor másolatokat adnak át az argumentum értékeiből, és a függvényen belüli változtatások nem befolyásolják az eredeti változókat.

Ha meg akarja változtatni egy változó értékét a hívó kódból, akkor erre mutatót (pointert) adnak át. Ekkor a függvény megkapja a címet, és módosíthatja az ezen a címen lévő értéket.

Példa érték szerinti és mutató szerinti átadásra:

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) // Kiírja 5-öt, mert érték szerint adták át

    incrementByPointer(&a)
    fmt.Println(a) // Kiírja 6-ot, mert mutató szerint adták át
}