¿Es posible obtener el dominio de una función parcial en Scala?¿Cómo obtener el dominio de una función parcial en Scala?
Ex:
val f: PartialFunction[Int, Unit] = {
case 1 => println("This is 1")
case 2 => println("This is 2")
}
¿Hay alguna manera de obtener algo como:
val list = f.getDomain
lo que indicaría valores 1 y 2?
Actualización: Estoy tratando de crear un sistema de notificación (bus de eventos). El suscriptor tendrá este aspecto:
class SomeSubscriber extends Subscriber {
notifications {
case LoginEvent(date) => println("Login on " + date)
case LogoutEvent(date) => println("Logout on " + date)
case e: Notification[Any] => async {
println("Other notification: " + e)
ui {
println("UI in async! " + e)
}
}
}
}
En mi NotiticationService (el distribuidor de eventos) Quiero tener acceso a los eventos declarados en el bloque cada notificaciones '' para que pueda empujar las notificaciones a los suscriptores. ¿Cómo puedo hacer eso?
Gracias de antemano.
No veo cómo esto puede ser posible (en una cantidad razonable de cálculos, de todos modos. Considere una función parcial definida solo en números primos (para que getDomain necesite devolver todos los números primos) –
Tiene un punto allí. Estaba pensando que el compilador de Scala podría ayudarme de alguna manera (en mi ejemplo debería ser fácil recuperar el dominio) .Gracias. – d4rkang3l
Si desea tener acceso al dominio, utilice un 'Map' en su lugar. – ziggystar