Requisito previo: Punteros en Go
Los punteros en el lenguaje de programación Go o Golang es una variable que se utiliza para almacenar la dirección de memoria de otra variable. También puede pasar los punteros a la función como las variables . Hay dos maneras de hacer esto de la siguiente manera:
Cree un puntero y simplemente páselo a la Función
En el siguiente programa, estamos tomando una función ptf que tiene un parámetro de puntero de tipo entero que indica a la función que acepte solo el argumento de tipo de puntero. Básicamente, esta función cambiaba el valor de la variable x . Al principio x contiene el valor 100. Pero después de la llamada a la función, el valor cambió a 748 como se muestra en la salida.
Go
// Go program to create a pointer // and passing it to the function package main import "fmt" // taking a function with integer // type pointer as an parameter func ptf(a *int) { // dereferencing *a = 748 } // Main function func main() { // taking a normal variable var x = 100 fmt.Printf("The value of x before function call is: %d\n", x) // taking a pointer variable // and assigning the address // of x to it var pa *int = &x // calling the function by // passing pointer to function ptf(pa) fmt.Printf("The value of x after function call is: %d\n", x) }
Producción:
The value of x before function call is: 100 The value of x after function call is: 748
Pasar una dirección de la variable a la llamada de función
Teniendo en cuenta el programa a continuación, no estamos creando un puntero para almacenar la dirección de la variable x , es decir, como pa en el programa anterior. Estamos pasando directamente la dirección de x a la llamada de función que funciona como el método discutido anteriormente.
Go
// Go program to create a pointer // and passing the address of the // variable to the function package main import "fmt" // taking a function with integer // type pointer as an parameter func ptf(a *int) { // dereferencing *a = 748 } // Main function func main() { // taking a normal variable var x = 100 fmt.Printf("The value of x before function call is: %d\n", x) // calling the function by // passing the address of // the variable x ptf(&x) fmt.Printf("The value of x after function call is: %d\n", x) }
Producción:
The value of x before function call is: 100 The value of x after function call is: 748
Nota: También puede usar el operador de declaración breve (:=) para declarar las variables y punteros en los programas anteriores.
Publicación traducida automáticamente
Artículo escrito por Anshul_Aggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA