Duplicar posible:
Scala: short form of pattern matching that returns Boolean¿Scala tiene un operador de "prueba si coinciden"?
En mi código Scala estoy encontrando a mí mismo escribiendo a menudo cosas como la siguiente:
x match{
case Type(params) => doStuffWith(params)
case _ => /* do nothing*/
}
¿Existe ya algún operador predefinido para ¿hacer esto? Creo que sería mucho más claro si pudiera escribir cosas como:
if(x match Type(params)) {
doStuffWith(params)
}
esencialmente evitando el extraño caso contrario. También he tenido otras situaciones en las que ser capaz de verificar si algo coincide con un patrón en línea me ahorraría un par adicional de llaves.
Sé que este tipo de cosas solo podría ser más útil al escribir más código iterativo, pero Scala parece tener tantas características ocultas que me preguntaba si alguien tiene una solución simple para esto.
¿Ha mirado extractores? – phant0m
Muchos de los tipos incorporados tienen predicados para esto también, como O bien isLeft/isRight, List isNil, Options isNone, etc. – Squidly