La coincidencia de patrones es una forma de verificar la secuencia dada de tokens para detectar la presencia de un patrón específico. Es la función más utilizada en Scala. Es una técnica para comparar un valor con un patrón. Es similar a la instrucción switch de Java y C.
Aquí, se utiliza la palabra clave » coincidencia » en lugar de la declaración de cambio. «match» siempre se define en la clase raíz de Scala para que esté disponible para todos los objetos. Esto puede contener una secuencia de alternativas. Cada alternativa comenzará con la palabra clave case . Cada declaración de caso incluye un patrón y una o más expresiones que se evalúan si el patrón especificado coincide. Para separar el patrón de las expresiones, se utiliza el símbolo de flecha (=>) .
Ejemplo 1:
// Scala program to illustrate // the pattern matching object GeeksforGeeks { // main method def main(args: Array[String]) { // calling test method println(test(1)); } // method containing match keyword def test(x:Int): String = x match { // if value of x is 0, // this case will be executed case 0 => "Hello, Geeks!!" // if value of x is 1, // this case will be executed case 1 => "Are you learning Scala?" // if x doesnt match any sequence, // then this case will be executed case _ => "Good Luck!!" } }
Producción:
Are you learning Scala?
Explicación: En el programa anterior, si el valor de x que se pasa en la llamada al método de prueba coincide con cualquiera de los casos, se evalúa la expresión dentro de ese caso. Aquí estamos pasando 1 por lo que se evaluará el caso 1 . case_ => es el caso predeterminado que se ejecutará si el valor de x no es 0 o 1.
Ejemplo 2:
// Scala program to illustrate // the pattern matching object GeeksforGeeks { // main method def main(args: Array[String]) { // calling test method println(test("Geeks")); } // method containing match keyword def test(x:String): String = x match { // if value of x is "G1", // this case will be executed case "G1" => "GFG" // if value of x is "G2", // this case will be executed case "G2" => "Scala Tutorials" // if x doesnt match any sequence, // then this case will be executed case _ => "Default Case Executed" } }
Producción:
Default Case Executed
Puntos importantes:
- Cada palabra clave de coincidencia debe tener al menos una cláusula de caso.
- El último » _ «, es un caso » cajón de sastre «, se ejecutará si ninguno de los casos coincide. Los casos también se denominan alternativas .
- La coincidencia de patrones no tiene ninguna declaración de interrupción.
- La coincidencia de patrones siempre devuelve algún valor.
- Los bloques de coincidencia son expresiones, no declaraciones. Esto significa que evalúan el cuerpo de cualquier caso que coincida. Esta es una característica muy importante de la programación funcional.
- La coincidencia de patrones también se puede utilizar para la asignación de valores y la comprensión, no solo en el bloque de coincidencia.
- La coincidencia de patrones permite hacer coincidir cualquier tipo de datos con la política de primera coincidencia.
- Cada declaración de caso devuelve un valor, y la declaración de coincidencia completa es prácticamente una función que devuelve un valor coincidente.
- Se pueden probar múltiples valores en una sola línea usando “ | “.
Publicación traducida automáticamente
Artículo escrito por Astha_Singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA