🥇 Valor vs Referencia (Copia vs Puntero)

🍿 Cuantas formas de enviar una variable a una función existen en Go?

Existen dos formas de enviar una variable a una funcion.

🍿 Ejemplo de paso de argumentos por copia en Go.

func equivalenciaEnPies(altura float32) float32 {
    altura = altura * 3.28
    return altura
}

var altura float32 = 1.70

fmt.Println("La altura es:", altura, "mts")
fmt.Println("La altura es:", equivalenciaEnPies(altura), " pies")
fmt.Println("La nueva altura es:", altura, "mts")

La altura es: 1.7 mts
La altura es: 5.576  pies
La nueva altura es: 1.7 mts

En este caso la función ha convertido una altura de metros a pies, la intención de este proceso es solo obtener la equivalencia de la altura en pies, el valor original de altura no es modificado.

🍿 Ejemplo de paso de argumentos por referencia en Go.

func conversionEnPies(altura *float32) float32 {
    *altura = *altura - 0.10
    return *altura
}

var altura float32 = 1.70

fmt.Println("La altura es:", altura, "mts")
fmt.Println("Al envejecer:", conversionEnPies(&altura), "mts")
fmt.Println("Despues de envejecer:", altura, "mts")
La altura es: 1.7 mts
Al envejecer: -1.5799999 mts
Despues de envejecer: -1.5799999 mts

En este caso la función a convertido una altura de metros a pies, la intención de este proceso es obetener la equivalencia de la altura en pies y modificar el valor de la variable original.

Uso de punteros. Constantes.
comments powered by Disqus