Punteros Nil
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 65 de 109.
Un puntero nil es un puntero que no apunta a nada. Es el valor cero para los tipos de puntero.
Declara un puntero nil:
var ptr *int
fmt.Println(ptr)
fmt.Println(ptr == nil)La salida muestra que el puntero es nil:
<nil>
trueIntentar desreferenciar un puntero nil provoca un pánico:
var ptr *int
// Esto hará que tu programa falle
// fmt.Println(*ptr)Comprueba siempre si un puntero es nil antes de desreferenciarlo:
if ptr != nil {
fmt.Println(*ptr)
}Desafío
PrincipianteEn este desafío, trabajarás con punteros nil en Go. Un puntero nil es un puntero que no apunta a ninguna dirección de memoria.
Tu tarea es verificar si un puntero es nil e imprimir un mensaje apropiado.
El código ya tiene una variable de puntero que está establecida en nil. Debes agregar código para verificar si el puntero es nil e imprimir un mensaje en consecuencia.
Hoja de referencia
Un puntero nil es un puntero que no apunta a nada. Es el valor cero para los tipos de puntero.
Declarar un puntero nil:
var ptr *int
fmt.Println(ptr) // <nil>
fmt.Println(ptr == nil) // trueComprueba siempre si un puntero es nil antes de desreferenciarlo para evitar pánicos:
if ptr != nil {
fmt.Println(*ptr)
}Pruébalo tú mismo
package main
import "fmt"
func main() {
// Este es un puntero nil a un entero
var ptr *int
// TODO: Verificar si ptr es nil
// Si es nil, imprimir "The pointer is nil"
// Si no es nil, imprimir "The pointer is not nil"
fmt.Println("Program completed")
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparación - Parte 1Operadores de comparación - Parte 2Operador lógico ANDOperador lógico OROperador lógico NOTConceptos básicos de precedencia de operadoresResumen: Realizar comparaciones7Flujo de control: Bucles
Explicación del bucle `for`Bucle `for` - BásicoBucle `for` - Solo condiciónLa palabra clave `break`La palabra clave `continue`Bucles anidadosResumen - Repetición de acciones2Variables y tipos de datos básicos
¿Qué es una variable?Inferencia de tipos con `:=`Enteros (int)Números de punto flotanteBooleanosStringsValores ceroConstantesConvenciones de nomenclaturaResumen - Variables y tipos5Entrada y salida básica
Salida con formatoVerbos de formatoImpresión de tiposObtener entrada básica del usuarioResumen: Entrada y salida8Funciones
Comprendiendo las funcionesDeclaración de una funciónLlamada a funcionesParámetros de funciónRetorno de un solo valorRetorno de múltiples valoresValores de retorno con nombreConceptos básicos del alcance de las funcionesResumen: Creando código reutilizable3Operadores básicos
Operadores aritméticosOperador de divisiónEl operador móduloOperador de asignaciónOperadores de asignación compuestaIncremento y decrementoResumen - Cálculos6Flujo de control: Condicionales
La sentencia `if`La palabra clave `else`La palabra clave `else if`Sombreado de variables en `if`Inicialización de variablesLa sentencia `switch``switch` con expresiones`switch` sin expresiónLa palabra clave `fallthrough`Resumen: Toma de decisiones