La declaración Switch es básicamente una declaración if anidada, aunque no admite expresiones, coincide con una variable de tipo de datos int, string o booleana con un conjunto determinado de casos proporcionados por el programador. Se utiliza principalmente en un programa basado en menús donde el usuario selecciona qué función desea ejecutar. Un caso de cambio en Rust se logra mediante la coincidencia de palabras clave. Veamos algunos ejemplos para ver cómo funciona.
1. Coincidencia de una sola variable:
A diferencia de C o Java, solo se ejecuta el caso correspondiente a la coincidencia, por lo que no debemos preocuparnos por fallar. De este modo, nos ahorramos el esfuerzo de escribir una declaración de interrupción después de cada caso. El caso predeterminado, donde no se encuentra ninguna coincidencia, se maneja con el caso ‘_’ (guion bajo). Hay algo especial en Rust, los casos pueden tener más de un valor.
Ejemplo:
Rust
fn main() { let num=3; match num{ 1=>println!("One"), 2=>println!("Two"), 3=>println!("Three"), _=>println!("Rest of the number"), }
Producción
Three
2. Varios Valores en un solo caso:
Se pueden incluir varios valores en un solo caso separándolos mediante ‘|’.
Ejemplo:
Rust
fn main() { let num=2; match num{ 1|3|5|7|9=>println!("Odd"), 2|4|6|8=>println!("Even"), _=>println!("Only one digit allowed"), } }
Producción
Even
No es el final también podemos incluir un rango de valores en cada caso.
3. Casos con rango inclusivo:
Un rango es inclusivo en este caso, lo que significa que ambos extremos también están incluidos.
Ejemplo:
Rust
fn main() { let num=19; match num{ 13..=19=>println!("Teenage"), _=>println!("Not Teenage"), } }
Producción
Teenage
4. Caso de coincidencia booleana:
Como se indicó al principio, también podemos usar valores booleanos para hacer coincidir los casos, ahora lo haremos. Una cosa más es que la coincidencia se puede usar en una expresión.
Ejemplo:
Rust
fn main() { let head = false; let coin_side = match head{ false => "tail", true => "head", }; println!("Coin Side={}", coin_side) }
Producción
Coin Side=tail
5. Caso de coincidencia de strings:
Por último, veremos cómo se usan las strings en los partidos.
Ejemplo:
Rust
fn main() { let coin = "head"; match coin{ "head" =>println!("head"), "tail"=> println!("tail"), _=>println!("False coin"), }; }
Producción
head