Junior — Middle
Jak odbywa się przekazywanie argumentów do funkcji w języku Go?
sobes.tech AI
Odpowiedź od AI
W języku Go argumenty w funkcjach są przekazywane przez wartość. Oznacza to, że podczas wywołania funkcji przekazywane są kopie wartości argumentów, a zmiany wewnątrz funkcji nie wpływają na oryginalne zmienne.
Jeśli chcesz zmienić wartość zmiennej z kodu wywołującego, przekazuje się wskaźnik na tę zmienną. Wtedy funkcja otrzymuje adres i może zmienić wartość pod tym adresem.
Przykład przekazywania przez wartość i przez wskaźnik:
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) // Wypisze 5, bo przekazano przez wartość
incrementByPointer(&a)
fmt.Println(a) // Wypisze 6, bo przekazano wskaźnik
}