Go Academy · Lección

Sentencias if y expresiones de inicialización

Condicionales con sentencias de inicialización opcionales

Lección 1 de 412 pasos

Sentencias if y expresiones de inicialización es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.

if en Go

La sentencia if de Go evalúa una expresión booleana; no se necesitan paréntesis, pero las llaves son obligatorias:

if x > 0 {
    // positive
}

else y else if

Encadene condiciones con else if y gestione el caso alternativo con else:

func classify(n int) string {
    if n < 0 {
        return "negative"
    } else if n == 0 {
        return "zero"
    } else {
        return "positive"
    }
}

if con sentencia de inicialización

Go permite una sentencia de inicialización opcional antes de la condición, lo que resulta ideal para limitar el ámbito de variables temporales:

if err := doSomething(); err != nil {
    // err is only in scope here
    return err
}

Ámbito de la sentencia de inicialización

Las variables declaradas en la sentencia de inicialización tienen como ámbito el bloque if/else. Esto evita que las variables se filtren a la función circundante:

func process(id int) error {
    if val, err := lookup(id); err != nil {
        return err
    } else {
        use(val) // val is in scope here
    }
    return nil
}

Expresiones booleanas

La condición de Go debe ser un bool; no hay conversión implícita:

  • Válido: if count != 0
  • No válido: if count; en Go provoca un error de compilación, a diferencia de C/JavaScript
  • Esto evita errores comunes de desbordamiento de índices y desreferenciación de nil

Comprobaciones de nil

Compruebe si los punteros, slices, maps y errores son nil mediante == nil:

func greet(name *string) string {
    if name == nil {
        return "Hello, stranger"
    }
    return "Hello, " + *name
}

Patrón de retorno anticipado

Go favorece claramente los retornos anticipados para reducir el anidamiento; el flujo normal se mantiene en el margen izquierdo:

func save(user User) error {
    if user.Name == "" {
        return errors.New("name required")
    }
    if user.Age < 0 {
        return errors.New("invalid age")
    }
    return db.Insert(user)
}

Combinación de condiciones

Use && y || para combinar condiciones. Se aplica la evaluación de cortocircuito: el lado derecho solo se evalúa cuando es necesario:

if user != nil && user.IsActive() {
    sendEmail(user)
}

if frente a switch

Cuando tiene muchas condiciones sobre la misma variable, switch suele ser más claro. Use if cuando:

  • Las condiciones son expresiones booleanas independientes
  • Necesita sentencias de inicialización con comprobaciones de errores
  • Solo tiene 1 o 2 ramas

Cómo evitar las pirámides de if-else

Los bloques de if-else profundamente anidados dificultan la lectura. Para evitarlo:

  • Use retornos anticipados
  • Use sentencias switch para varios casos
  • Divida la lógica en funciones más pequeñas
  • Use cláusulas de guarda al principio de la función

Comprobación rápida

¿Qué tiene de particular la sentencia if de Go en comparación con la de C?

Resumen: sentencias if

La sentencia if de Go es potente y clara:

  • No lleva paréntesis alrededor de la condición; las llaves son obligatorias
  • La sentencia de inicialización limita las variables al bloque if/else
  • La condición debe ser estrictamente bool
  • Se prefieren los retornos anticipados al anidamiento profundo
  • Use &&/|| con evaluación de cortocircuito

Siguiente tema: el versátil bucle for de Go.

Gratis para empezar

Aprende Go con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
51
Lecciones
203

Preguntas frecuentes

¿La lección «Sentencias if y expresiones de inicialización» es gratis?

Sí — el texto completo de «Sentencias if y expresiones de inicialización» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Sentencias if y expresiones de inicialización»?

Condicionales con sentencias de inicialización opcionales Practicas Go Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Go Academy?

No se requiere experiencia previa. Go Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Sentencias if y expresiones de inicialización»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Go Academy?

Sí. Cada lección de Go Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Sentencias if y expresiones de inicialización
  2. El bucle for: todos los patrones
  3. Sentencias switch en Go
  4. break, continue y etiquetas
← Volver a Go Academy