`switch` con expresiones
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 40 de 109.
Aprendamos sobre las expresiones switch en Go, que nos permiten evaluar un valor directamente en la sentencia switch.
Primero, veamos cómo usar una sentencia switch con una expresión para comprobar si un número es positivo, negativo o cero:
num := -5
switch {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Después de ejecutar este código, el programa mostrará en la pantalla:
Negative numberObserva que estamos usando switch { sin ningún valor después. Esto significa que Go evaluará cada expresión case como una condición booleana. Dado que num es -5, el segundo caso num < 0 se evalúa como verdadero, por lo que se imprime "Número negativo".
También podemos inicializar una variable directamente en la sentencia switch. Veamos cómo funciona:
switch num := -5; {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Después de ejecutar este código, obtenemos el mismo resultado:
Negative numberEn este ejemplo, declaramos e inicializamos num directamente en la sentencia switch. El punto y coma separa la inicialización de la expresión switch (que está vacía aquí). Esto hace que nuestro código sea más compacto manteniendo la misma funcionalidad.
Desafío
Principianteswitch simple en Go. Debes completar el código para determinar la descripción de un día basándote en su nombre usando una sentencia switch.Ya se ha definido una variable
dayName con el valor "Wednesday". Tu tarea consiste en utilizar una expresión switch para establecer la variable description en:-
"Start of the week" para Monday-
"Midweek" para Wednesday-
"Almost weekend" para Friday-
"Weekend" para Saturday o Sunday-
"Regular day" para cualquier otro díaHoja de referencia
Las expresiones switch en Go le permiten evaluar condiciones directamente en la sentencia switch.
Use switch { sin ningún valor para evaluar expresiones booleanas en cada caso:
num := -5
switch {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Puede inicializar una variable directamente en la sentencia switch usando un punto y coma para separar la inicialización de la expresión switch:
switch num := -5; {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Pruébalo tú mismo
package main
import "fmt"
func main() {
// El nombre del día ya está definido
dayName := "Wednesday"
// Variable para almacenar la descripción
var description string
// TODO: Escribe una sentencia switch que establezca la descripción basada en dayName
// Para Monday: "Start of the week"
// Para Wednesday: "Midweek"
// Para Friday: "Almost weekend"
// Para Saturday o Sunday: "Weekend"
// Para cualquier otro día: "Regular day"
// Imprimir el resultado
fmt.Printf("%s is %s\n", dayName, description)
}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