Junior — Middle
¿Cómo se realiza la transferencia de elementos entre funciones y estructuras en el lenguaje Golang?
sobes.tech AI
Respuesta de la IA
En Go, la transferencia de elementos entre funciones y estructuras puede realizarse de dos maneras principales: por valor y por puntero.
- Por valor: se copia la estructura o variable en sí misma, los cambios dentro de la función no afectan al original.
- Por puntero: se pasa la dirección de la estructura o variable, lo que permite a la función modificar los datos originales.
Ejemplo:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func updateByValue(p Person) {
p.Age = 30 // solo cambiará la copia
}
func updateByPointer(p *Person) {
p.Age = 30 // cambiará el original
}
func main() {
person := Person{Name: "Ivan", Age: 25}
updateByValue(person)
fmt.Println(person.Age) // 25
updateByPointer(&person)
fmt.Println(person.Age) // 30
}
Por lo tanto, si se desea modificar los datos dentro de la función, se pasa un puntero a la estructura. Si no se necesitan cambios, se puede pasar por valor.