ho un metodo, con un sacco di parametri impliciti:implicito all'interno di pattern match
def hello(message:String)(implicit a:A,b:B,c:C, ..., user: User) = {...}
Consideriamo ora un tale classe:
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
}
}
}
Si può vedere questa linea nel campione di cui sopra:
implicit val _user = user
esiste solo per rendere l'oggetto user
come oggetto implicito. In caso contrario, devo chiamare hello
come:
hello("implicit")(a,b,c,... user)
mi viene da pensare se non v'è alcun modo per migliorare il codice, ad esempio, non è necessario definire la variabile _user
ma rendere lo user
implicito.
+1, è una buona soluzione se il modello corrisponde ad una 'Opzione'. Ma cosa succede se ci sono molti 'case's? – Freewind
@Freewind. Ho aggiornato la mia risposta per coprire molti 'casi'. – romusz