Sobes.tech
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
}