Menu
Coddy logo textTech

Nueva función

Lección 3 de 19 del curso Funciones y punteros en Golang de Coddy.

En las últimas lecciones, aprendimos que las variables son objetos o espacios en memoria con un nombre que apunta a ese espacio.

En Go, tenemos una función que crea un espacio sin nombre en la memoria, y lo hacemos con la ayuda de la función new(). La sintaxis es la siguiente:

coddy := new(string)

Aquí, creamos un objeto con el nombre coddy y el tipo string, y la función new() devuelve un puntero a ese objeto (espacio).

Si imprimimos el nombre, obtendremos la dirección de memoria de este espacio:

fmt.Println("Value:", coddy)

El resultado será:

Value: 0xc000014070

Podemos reasignar un valor a este puntero de esta manera:

coddy := new(string)
*coddy = "Learn To Code with coddy"
fmt.Println("Value:", *coddy)

El resultado será:

Value: Learn To Code with coddy

Ten en cuenta que cuando creamos punteros con la función new(), el valor por defecto no es nil. Depende del tipo, al igual que las variables. Si el tipo es int, el valor por defecto es 0; para string, es una cadena vacía; y para boolean, es false.

challenge icon

Desafío

Fácil

Escribe un programa que reciba una entrada del usuario y realice lo siguiente:

  1. Crea un puntero de tipo int utilizando la función new().
  2. Imprime el valor predeterminado del puntero.
  3. Asigna el valor ingresado por el usuario a ese puntero.
  4. Imprime el valor del puntero después de la asignación.

Pruébalo tú mismo

package main

import (
	"fmt"
)

func main() {
	// Toma la entrada del usuario ¡No cambies esto!
	var num int
	fmt.Scanln(&num)

	// Crea un puntero de tipo int usando la función new().
 

	// Imprime el valor por defecto del puntero.
    fmt.Println("Default value of the pointer:", ?)

	// Asigna el valor ingresado por el usuario a ese puntero
 

	// Imprime el valor del puntero después de la asignación.
    fmt.Println("Value of the pointer after assignment:", ?)
}

Todas las lecciones de Funciones y punteros en Golang