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: 0xc000014070Podemos 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 coddyTen 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.
Desafío
FácilEscribe un programa que reciba una entrada del usuario y realice lo siguiente:
- Crea un puntero de tipo int utilizando la función new().
- Imprime el valor predeterminado del puntero.
- Asigna el valor ingresado por el usuario a ese puntero.
- 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
1Introducción
Introducción4Reconstruir funciones de Strings en Go
Strings en GolangFunción JoinFunción ContainsFunción IndexDesafío de repaso #1