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
}