Junior — Middle
Kako se vrši prenos elemenata između funkcija i struktura u jeziku Golang?
sobes.tech АИ
Одговор од АИ
U jeziku Go, prenos elemenata između funkcija i struktura može se obaviti na dva glavna načina: po vrednosti i po pokazivaču.
- Po vrednosti: kopira se sama struktura ili promenljiva, promene unutar funkcije ne utiču na original.
- Po pokazivaču: prosleđuje se adresa strukture ili promenljive, što omogućava funkciji da menja originalne podatke.
Primer:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func updateByValue(p Person) {
p.Age = 30 // menja se samo kopija
}
func updateByPointer(p *Person) {
p.Age = 30 // menja se original
}
func main() {
person := Person{Name: "Ivan", Age: 25}
updateByValue(person)
fmt.Println(person.Age) // 25
updateByPointer(&person)
fmt.Println(person.Age) // 30
}
Ako želite da promenite podatke unutar funkcije, prosledite pokazivač na strukturu. Ako promene nisu potrebne, možete proslediti po vrednosti.