Junior — Middle
Ako sa realizuje prenos prvkov medzi funkciami a štruktúrami v jazyku Golang?
sobes.tech AI
Odpoveď od AI
V jazyku Go môže byť odovzdanie prvkov medzi funkciami a štruktúrami vykonané dvoma hlavnými spôsobmi: podľa hodnoty a podľa ukazovateľa.
- Podľa hodnoty: kopíruje sa samotná štruktúra alebo premenná, zmeny vo vnútri funkcie neovplyvnia originál.
- Podľa ukazovateľa: odovzdáva sa adresa štruktúry alebo premennej, čo umožňuje funkcii meniť pôvodné údaje.
Príklad:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func updateByValue(p Person) {
p.Age = 30 // zmení sa iba kópia
}
func updateByPointer(p *Person) {
p.Age = 30 // zmení sa originál
}
func main() {
person := Person{Name: "Ivan", Age: 25}
updateByValue(person)
fmt.Println(person.Age) // 25
updateByPointer(&person)
fmt.Println(person.Age) // 30
}
Ak chcete zmeniť údaje vo vnútri funkcie, odovzdajte ukazovateľ na štruktúru. Ak nie sú potrebné zmeny, môžete odovzdať podľa hodnoty.