Go esencial

El controlador switch

¡Prueba gratis durante 10 días

nuestros 1203 cursos !

Prueba gratis Mostrar modalidades de suscripción
Aunque la condicional de tipo if/else es en extremo funcional, en algunos casos podemos utilizar una opción aún mejor, el controlador switch es más rápido, más eficiente y hasta tiene una sintaxis más sencilla. En esta lección aprenderemos a usar un switch para mostrar un mensaje diferente por cada día de la semana.
08:35

Transcripción

Un Switch es un valor condicional que nos va a permitir a nosotros ejecutar diferentes tareas de acuerdo al valor que contenga una variable. Ahora un Switch es más rápido que una condicional, por ejemplo, una condicional "If" porque hace una evaluación mucho más eficiente Así que dependiendo de la forma en que nosotros tengamos que realizar nuestra lógica, en muchos casos, Switch puede ser una mejor opción. En esta lección vamos a aprender cómo funcionan y cómo implementar un Switch dentro de ''GO''. Lo que vamos a hacer dentro de este programa es que vamos a evaluar qué día de la semana es y a partir del día de la semana, vamos a mostrar un mensaje diferente. Para poder saber qué día de la semana es yo necesito realizar un paso antes. Voy a crear una variable que se llama "tiempo" y la voy a igualar a el momento en que se está ejecutando mi programa. Para saber eso, necesito utilizar la librería "Time", que se encuentra dentro de "GO" y específicamente el método "Now" esto me va a dar exactamente el tiempo en que se ejecute mi aplicación. Como puedes ver, se ha importado un paquete llamado "time", ya tenemos acceso a él, y podemos trabajar y acceder la fecha exacta en que estamos trabajando. Una vez que yo tenga este objeto, también voy a necesitar conocer a partir de la fecha en la que se está ejecutando, saber qué día de la semana estoy, ahora, normalmente para esto yo debería crear otra variable y a partir de esa variable, enviarla al Switch, el Switch revisaría los diferentes valores y me devolvería un resultado. Sin embargo en "GO", yo puedo sintetizar todo esto en un solo paso, voy a utilizar el comando Switch, y voy a definir la variable de entrada, la variable que vamos a utilizar para evaluar, así que, vamos a poner, "DíaDeHoy" y esta variable, "DíaDeHoy", la voy a igualar a un valor que va a ser "tiempo", que es el valor que ya hemos creado acá y ya sabemos que contiene la información del momento actual en el que se está ejecutando mi aplicación. "Tiempo" y vamos a obtener dentro de este objeto, vamos a procesarlo para obtener un valor que es "weekday", weekday me va a devolver un número entero dependiendo del día de la semana, vamos a comenzar con domingo, así que domingo va a ser el valor "0" y a partir de ahí, todos los días van a tener un valor incremental, por ejemplo, "lunes" va a ser "1", "martes" va a ser "2" etc, etc, etc. Ahora, sabiendo esto, vamos a poner ";", y ya hemos definido el punto de entrada que vamos a evaluar, yo voy a invocar esta variable que ya he creado "DíaDeHoy" y "DíaDeHoy" va a ser el valor que vamos a evaluar dentro de este Switch, así que, ponemos llaves y ya estamos listos para analizar cuál va a ser el resultado de esta variable. Ahora, ¿cómo vamos a analizar las diferentes condiciones que vamos a tener con los valores que me van a llegar acá? Bueno, vamos a poner en este caso es la sintaxis del Switch, vamos a poner "case" y definimos cuál es el valor. Por ejemplo, si el valor fuera una cadena de texto, definimos... ...si "case=texto" en este caso, yo se qué "weekday" me devuelve un entero, así que yo voy a decir que si "case = 0". Una vez que definí "case" pongo ":", así que es "case" valor que quiero analizar, ":" y acá es donde se va a ejecutar el código que calza con esta condición, por ejemplo, si "case = 0" yo voy a hacer que... se muestre un mensaje "fmt.println" para poder desplegar esta información en una línea, quiero que notes que también se ha importado otra librería que en este caso es la de formato, mostrar información en la consola y ya tengo "Println" y vamos a mostrar la información, ¿qué información quiero mostrar? Bueno, ya sabiendo que estamos dentro de el entero "0", que significa que es domingo, vamos a mostrar un mensaje que dice "descanso de domingo", ahora, vamos a poner otra línea, "case 1", esto significa que en caso de que no sea domingo, sino que sea lunes, vamos a mostrar otro mensaje, en el caso de los Switch, específicamente en "GO", nosotros vamos a tener estos elementos pero cuando se ejecuta, por ejemplo, si fuera el caso de que estamos un domingo, en el momento en el que se ejecuta esta línea, le programaba evaluar que se ejecutó y cuando vuelve a encontrar el comando "case" va a detener este bucle. En algunos otros lenguajes, no nos va a pasar este caso, sino que cuando se ejecuten, necesitamos detener el bucle específicamente y explícitamente. En el caso de "GO", esto se hace automático. Simplemente tenemos que definir cuál va a ser el bloque y en cuanto encuentre el siguiente "case", va a dejar de ejecutarlo porque sabe que ya se ha ejecutado el comando correcto que ya no tenemos que seguir iterando sobre este bucle. Ahora, ya tenemos definido el código para la condición, en caso de que el valor sea "0", vemos también la condición en caso de que el valor fuera "1" y voy a cambiar este mensaje para que no se repita en caso de que fuera un "lunes", el valor "1" sería "lunes", y entonces ahora tenemos un mensaje para el "domingo" y un mensaje para el "lunes". Si quiero poner un mensaje para el martes, simplemente pongo "case 2" y siempre tengo que poner ":" y a partir de ahí, se empieza a ejecutar. Para mantener este ejemplo más simple, nada más vamos a ejecutar estos dos días de la semana, los demás días es simplemente agregar valores. Ahora, finalmente dentro de un Switch, nosotros podemos incluir un valor que se ejecute por defecto. Este valor se va a ejecutar en caso de que el valor que viene dentro de día de hoy no sea ni "0" ni "1", ni todas las demás condiciones que ponemos, entonces en caso de que no se cumpla ninguna de las condiciones evaluadas, vamos a ejecutar el "default", "default" es la opción... ...que debemos poner que es la opción por defecto que se va a ejecutar en caso de que ninguna de las condiciones sea válida, vamos a poner también acá un mensaje que nos va a decir, por ejemplo, "trabajo". Los domingos descansamos, los lunes los odiamos y entonces todos los demás días trabajamos. Ese sería la lógica de este programa, estamos listos para poder guardar y vamos a ejecutar nuestra aplicación, en este caso, "Go run Switch.go", y vemos que en este caso, me está diciendo, descanso domingo porque yo lo he definido la fecha dentro de mi equipo para que me marque como domingo, voy a volver a cambiar la fecha, en este caso para que me la muestre como un lunes, en este momento uno lo está viendo en pantalla, pero acabo de cambiar la fecha de mi ordenador, siempre la fecha que se está marcando acá, es la fecha que viene desde el equipo, en que se ejecuta el programa, vamos a volver a ejecutar. Y ahora me está diciendo que es "lunes" según mi ordenador es lunes y me está diciendo el mensaje correspondiente, vamos a cambiar una última vez la fecha y vamos a poner que sea "viernes" y este va a ser el caso en que no es ni domingo, ni lunes, entonces vamos a activar la opción "default", vamos a probar y nos muestra "trabajo". Cualquier otro día que no sea ninguno de estos dos, vamos a ejecutar la opción "default", esta es la forma en que trabajan los Switch y de nuevo la idea es que los utilicemos en caso de que si estamos haciendo una condicional, como por ejemplo "If" y que trabajemos sobre la misma variable, simplemente evaluando que el valor que esté dentro de ella cambie ligeramente, en ese caso, es más eficiente un Switch. Si nosotros necesitamos revisar dentro de una condicional que el valor cambie, por ejemplo cambien las variables o que cambie los tipos, en ese caso es mejor utilizar un "If" pero siempre el Switch, va a ser mucho más rápido y mucho más eficiente en la medida de lo posible que lo podamos utilizar.

Go esencial

Aprende los elementos esenciales de Go, el lenguaje de código abierto con un rendimiento similar a C, lo que lo ha hecho muy popular para la creación de aplciaciones web.

2:45 horas (29 Videos)
Actualmente no hay comentarios.
 
Software:
Fecha de publicación:16/03/2017

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.