Mam metodę, z dużo parametrów ukrytych:niejawny w ciągu wzorca meczu
def hello(message:String)(implicit a:A,b:B,c:C, ..., user: User) = {...}
Teraz rozważmy taką klasę:
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
}
}
}
widać to wiersz w powyższym próbki:
implicit val _user = user
To istnieje tylko, aby obiekt user
jako domniemany obiektu. W przeciwnym razie, muszę zadzwonić hello
jak:
hello("implicit")(a,b,c,... user)
myślę, czy istnieje jakiś sposób, aby poprawić kod, na przykład nie musimy definiować tej zmiennej _user
, ale powodujemy, że user
jest niejawne.
+1, to dobre rozwiązanie, jeśli wzór pasuje do opcji. Ale co, jeśli jest wiele "przypadków"? – Freewind
@Freewind. Zaktualizowałem swoją odpowiedź, aby objąć wiele "przypadków". – romusz