Junior — Middle
Cum se realizează transferul elementelor între funcții și structuri în limbajul Golang?
sobes.tech AI
Răspuns de la AI
În Go, transferul elementelor între funcții și structuri poate fi realizat în două moduri principale: prin valoare și prin pointer.
- Prin valoare: se copiază structura sau variabila în sine, modificările din interiorul funcției nu afectează originalul.
- Prin pointer: se transmite adresa structurii sau variabilei, ceea ce permite funcției să modifice datele originale.
Exemplu:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func updateByValue(p Person) {
p.Age = 30 // va modifica doar copia
}
func updateByPointer(p *Person) {
p.Age = 30 // va modifica originalul
}
func main() {
person := Person{Name: "Ivan", Age: 25}
updateByValue(person)
fmt.Println(person.Age) // 25
updateByPointer(&person)
fmt.Println(person.Age) // 30
}
Prin urmare, dacă doriți să modificați datele în interiorul funcției, transmiteți un pointer către structură. Dacă nu sunt necesare modificări, puteți transmite prin valoare.