Switch en GO

En la programación, es habitual necesitar ejecutar diferentes acciones en función del valor de una variable. En Go, la sentencia switch te permite realizar esta tarea de forma eficiente y flexible.

Sintaxis básica


switch variable {
  case valor1:
    // Bloque de código para el valor1
  case valor2:
    // Bloque de código para el valor2
  default:
    // Bloque de código por defecto
}

Lenguaje del código: Go (go)

Explicación:

  • La variable se evalúa y se compara con cada uno de los case.
  • Si se encuentra una coincidencia, se ejecuta el bloque de código asociado al case correspondiente.
  • Si no se encuentra ninguna coincidencia, se ejecuta el bloque de código default (opcional).

Ejemplos:

1. Ejemplo simple:


numero := 3

switch numero {
  case 1:
    fmt.Println("El número es 1")
  case 2:
    fmt.Println("El número es 2")
  case 3:
    fmt.Println("El número es 3")
  default:
    fmt.Println("El número no está entre 1 y 3")
}

Lenguaje del código: Go (go)

2. Ejemplo con múltiples casos:


letra := "B"

switch letra {
  case "A", "E", "I", "O", "U":
    fmt.Println("La letra es una vocal")
  case "B", "C", "D", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "V", "W", "X", "Y", "Z":
    fmt.Println("La letra es una consonante")
  default:
    fmt.Println("El caracter no es una letra")
}

Lenguaje del código: Go (go)

3. Ejemplo con comparación de strings:


pais := "España"

switch pais {
  case "España", "México", "Argentina", "Colombia":
    fmt.Println("El país es hispanohablante")
  default:
    fmt.Println("El país no es hispanohablante")
}

Lenguaje del código: Go (go)

4. Ejemplo con tipos de datos complejos:


tipo := "Perro"

switch tipo {
  case "Perro":
    fmt.Println("Es un animal doméstico")
  case "Gato":
    fmt.Println("Es un animal doméstico")
  case "Caballo":
    fmt.Println("Es un animal de granja")
  case "Vaca":
    fmt.Println("Es un animal de granja")
  default:
    fmt.Println("El tipo de animal no está especificado")
}

Lenguaje del código: Go (go)

Documentación y código

Es importante documentar tu código para que sea fácil de entender y mantener. Puedes usar comentarios para explicar el propósito de cada case.

Ejemplo:


// Función para determinar si un número es par o impar
func esPar(numero int) bool {
  // Se evalúa si el resto de la división por 2 es 0
  switch numero % 2 {
  case 0:
    // El número es par
    return true
  default:
    // El número es impar
    return false
  }
}

Lenguaje del código: Go (go)

Conclusión

La sentencia switch es una herramienta poderosa para manejar diferentes casos en tu código de Go.