Sobes.tech
Junior — Middle

Ako sa v jazyku Go vykonáva odovzdávanie argumentov vo funkciách?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa argumenty vo funkciách prenášajú hodnotou. To znamená, že pri volaní funkcie sa prenášajú kópie hodnôt argumentov a zmeny vo vnútri funkcie neovplyvňujú pôvodné premenné.

Ak je potrebné zmeniť hodnotu premennej z volajúceho kódu, odovzdá sa ukazovateľ na túto premennú. Potom funkcia dostane adresu a môže zmeniť hodnotu na tejto adrese.

Príklad odovzdania hodnotou a ukazovateľom:

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) // Vytlačí 5, pretože bolo odovzdané hodnotou

    incrementByPointer(&a)
    fmt.Println(a) // Vytlačí 6, pretože bolo odovzdané ako ukazovateľ
}