Junior — Middle
Jak se předávají argumenty ve funkcích v jazyce Go?
sobes.tech AI
Odpověď od AI
V jazyce Go jsou argumenty ve funkcích předávány hodnotou. To znamená, že při volání funkce jsou předány kopie hodnot argumentů a změny uvnitř funkce neovlivňují původní proměnné.
Pokud je potřeba změnit hodnotu proměnné z volajícího kódu, předá se ukazatel na tuto proměnnou. Pak funkce obdrží adresu a může změnit hodnotu na této adrese.
Příklad předání hodnotou a ukazatelem:
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) // Vytiskne 5, protože bylo předáno hodnotou
incrementByPointer(&a)
fmt.Println(a) // Vytiskne 6, protože bylo předáno ukazatelem
}