tengo un método, con una gran cantidad de parámetros implícitos:implícito dentro de coincidencia de patrones
def hello(message:String)(implicit a:A,b:B,c:C, ..., user: User) = {...}
Consideremos ahora una clase así:
object Users extends Controller {
implicit a: A = ...
implicit b: B = ...
...
def index(id:String) = Action {
User.findById(id) match {
case Some(user) => {
implicit val _user = user
hello("implicit")
}
case _ => BadRequest
}
}
}
Se puede ver esta línea en el ejemplo anterior:
implicit val _user = user
existe sólo para hacer que el objeto user
como un objeto implícito. De lo contrario, tengo que llamar a hello
como:
hello("implicit")(a,b,c,... user)
Estoy pensando que si hay alguna manera de mejorar el código, por ejemplo, no necesitamos definir esa variable _user
, pero hacer que el user
esté implícito.
+1, es una buena solución si el patrón coincide con una 'Opción'. Pero, ¿y si hay muchos 'casos'? – Freewind
@Freewind. He actualizado mi respuesta para cubrir muchos 'casos'. – romusz