Sobes.tech
Junior — Middle

¿Cómo se pasan los argumentos a las funciones en el lenguaje Go?

sobes.tech AI

Respuesta de la IA

En el lenguaje Go, los argumentos en las funciones se pasan por valor. Esto significa que al llamar a una función, se pasan copias de los valores de los argumentos, y los cambios dentro de la función no afectan a las variables originales.

Si se necesita modificar el valor de una variable desde el código que llama, se pasa un puntero a esa variable. Entonces, la función recibe la dirección y puede cambiar el valor en esa dirección.

Ejemplo de paso por valor y por puntero:

package main
import "fmt"

func incrementByValue(x int) {
    x = x + 1
}

func incrementByPointer(x *int) {
    *x = *x + 1
}

func main() {
    a := 5
    incrementByValue(a)
    fmt.Println(a) // Imprimirá 5, ya que se pasa por valor

    incrementByPointer(&a)
    fmt.Println(a) // Imprimirá 6, ya que se pasa un puntero
}