Junior — Middle
Kā notiek argumentu nodošana funkcijās Go valodā?
sobes.tech AI
Atbilde no AI
Go valodā funkcijās argumenti tiek nodoti pēc vērtības. Tas nozīmē, ka, izsaucot funkciju, tiek nodotas argumentu vērtību kopijas, un izmaiņas funkcijas iekšienē neietekmē oriģinālās mainīgās.
Ja nepieciešams mainīt mainīgās vērtību no izsaucējošā koda, tiek nodots norādītājs uz šo mainīgo. Tad funkcija saņem adresi un var mainīt vērtību šajā adresē.
Piemērs, kā nodot pēc vērtības un pēc norādītāja:
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) // Izdrukās 5, jo nodots pēc vērtības
incrementByPointer(&a)
fmt.Println(a) // Izdrukās 6, jo nodots pēc norādītāja
}