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ľ
}