Sí, se puede:
def foo(p1: String) = Action { implicit request =>
Ok(bar(p1))
}
private def bar(p1: String)(implicit req: RequestHeader) = "content"
El código:
Action { implicit request
llama a este método en el objeto de la acción:
def apply(block: Request[AnyContent] => Result): Action[AnyContent] = {
lo tanto, lo que se llama "solicitud" coincide con el parámetro de nombre "bloque". Aquí lo "implícito" es opcional: hace que el valor de "solicitud" esté disponible como un parámetro implícito para otras llamadas al método/función.
Lo implícito en su función de "barra" dice que puede tomar el valor de "req" a partir de un valor implícito, y no necesariamente debe pasarse explícitamente.
Gracias Adam, eso funciona. Pregunta de seguimiento, ¿la necesidad implícita se debe pasar como un parámetro al curry? – Bob
En scala, es el parámetro _list_, no el parámetro, que está implícito. No estoy seguro de la motivación para eso. –
Scala> val implícita i = 1 i: Int = 1 Scala> val implícito s = "hi" s: java.lang.String = hi Scala> def concat (x implícitos: Int, Y: String) = x + y concat: (implícito x: Int, implícito y: Cadena) Cadena scala> concat res0: Cadena = 1hi –