Sentencia SWITCH en Go para selección condicional

Clase 8 de 29Curso de Go

Resumen

El manejo eficiente del flujo del programa es clave en cualquier desarrollo, y la sentencia SWITCH en el lenguaje Go se presenta como una excelente herramienta para este propósito. A lo largo de este contenido, descubrirás cómo usar SWITCH para evaluar variables y condiciones de manera organizada y clara.

¿Qué es la sentencia SWITCH en Go y cómo usarla?

La sentencia SWITCH permite tomar decisiones en función del valor específico de una variable o expresión. A diferencia del ciclo FOR, SWITCH no repite acciones, sino que selecciona bloques de código específicos según requisitos previamente establecidos.

Para comenzar, es necesario crear un archivo principal dentro de una carpeta específica, siguiendo la estructura básica del lenguaje Go:

package main

import "fmt"

func main() {
    var i int = 2
    fmt.Println("Escribe cualquier cosa", i)

    switch i {
    case 1:
        fmt.Println("1")
    case 2:
        fmt.Println("2")
    case 3:
        fmt.Println("3")
    }
}

Al ejecutar este programa, la pantalla mostrará el valor de la variable definida, tomando la acción establecida en el caso correspondiente.

¿Cómo manejar múltiples condiciones con SWITCH?

Además de condiciones simples, SWITCH permite manejar múltiples condiciones e incluso un valor por defecto (default). Por ejemplo, para identificar días específicos de la semana, se utiliza el paquete time para evaluar la fecha actual:

package main

import (
    "fmt"
    "time"
)

func main() {
    switch time.Now().Weekday() {
    case time.Saturday, time.Sunday:
        fmt.Println("A descansar")
    default:
        fmt.Println("Toca grabar más cursos en Platzi")
    }
}

En este caso, al ejecutarse el código, aparecerá uno de los mensajes dependiendo del día.

¿Cómo definir variables externas en un SWITCH?

También es posible utilizar variables previamente declaradas o externas al SWITCH. Esto permite mayor flexibilidad y reutilización del código:

package main

import (
    "fmt"
    "time"
)

func main() {
    tiempo := time.Now()

    switch {
    case tiempo.Hour() < 12:
        fmt.Println("Debes decir: buenos días")
    default:
        fmt.Println("Debes decir: buenas tardes")
    }
}

Dependiendo de la hora presente en el equipo al ejecutar, mostrará un saludo adecuado.

¿Quieres poner a prueba tu conocimiento sobre SWITCH?

Como reto adicional, intenta utilizar el formato de día de la semana en español en un SWITCH basado en la función time.Weekday. Comparte tu método y resultados en los comentarios, ¡será genial saber cómo lo lograste!