English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Golang

Sentencias de control de Golang

Función y método de Golang

Estructura de Golang

Cortes y matrices de Golang

Cadenas (String) de Golang

Punteros de Golang

Interfaz de Golang

Concurrencia de Golang

Excepciones (Error) de Golang

Otras cosas de Golang

Punteros de lenguaje Go como parámetros de función

Lenguaje de programación GoEl puntero en la variable es una variable que se utiliza para almacenar la dirección de memoria de otra variable. También puede hacer lo mismo queVariableDel mismo modo, envíe el puntero a la función. Hay dos formas de realizar la siguiente operación:

  • Crear un puntero y pasarlo a la función

  • Enviar la dirección de memoria de la variable

Crear un puntero y pasarlo a la función

En el siguiente programa, usamos la funciónptfLa función tiene un parámetro de tipo puntero de entero, lo que significa que la función solo acepta parámetros de tipo puntero. Al mismo tiempo, esta función cambia el valor de la variablexEn el principio,xContiene el valor100. Pero después de la llamada a la función, el valor cambia a748Como se muestra en la salida.

// El programa Go crea un puntero
//Y pasarlo a la función
package main
import "fmt"
//Aceptar puntero como parámetro
func ptf(a *int) {
    //Desreferenciar
    *a = 748

func main() {
    //Variable normal
    var x = 100
    fmt.Printf("El valor de x antes de la llamada a la función es: %d\n", x)
    //Obtener una variable puntero
    //y asignar la dirección
    var pa *int = &x
    //Llamar a la función de la siguiente manera
    //Enviar puntero a la función
    ptf(pa)
    fmt.Printf("El valor de x después de la llamada a la función es: %d\n", x)

Salida:

El valor de x antes de la llamada a la función es: 100
El valor de x después de la llamada a la función es: 748

Enviar la dirección de la variable a la llamada a la función

Consideremos el siguiente programa, no hemos creado punteros para almacenar variablesxla dirección, es decir, la dirección en el programa anteriorpa. Directamente pasamosxEnviar la dirección de la dirección a la llamada a la función, la llamada a la función es similar al método anterior.

package main
import "fmt"
// Puntero de tipo int como parámetro
func ptf(a *int) {
    *a = 748

func main() {
    var x = 100
    fmt.Printf("El valor de x antes de la llamada a la función es: %d\n", x)
    //Al llamar a la función
    //Enviar la dirección
    //Variable x
    ptf(&x)
    fmt.Printf("El valor de x después de la llamada a la función es: %d\n", x)

Salida:

El valor de x antes de la llamada a la función es: 100
El valor de x después de la llamada a la función es: 748

Atención:También puede usar el operador de declaración breve (:=) para declarar variables y punteros en el programa anterior.