Vâng, bạn có thể:
def foo(p1: String) = Action { implicit request =>
Ok(bar(p1))
}
private def bar(p1: String)(implicit req: RequestHeader) = "content"
Mã:
Action { implicit request
cuộc gọi phương pháp này trên đối tượng Hành động:
def apply(block: Request[AnyContent] => Result): Action[AnyContent] = {
Vì vậy, những gì bạn gọi là "yêu cầu" phù hợp với paramater có tên là "khối". Các "ngầm" ở đây là tùy chọn: nó làm cho giá trị "yêu cầu" có sẵn như là một tham số ngầm cho các cuộc gọi phương thức/hàm khác.
Hàm ẩn trong hàm "bar" của bạn cho biết rằng hàm này có thể lấy giá trị "req" từ giá trị ngầm định và không nhất thiết phải được chuyển một cách rõ ràng.
Nguồn
2012-06-26 00:22:07
Cảm ơn Adam, điều đó có hiệu quả. Theo dõi câu hỏi, liệu tiềm năng cần phải được chuyển qua như một tham số được curried? – Bob
Trong scala, nó là tham số _list_, không phải tham số, đó là ngầm định. Tôi không chắc về động cơ đó. –
scala> val ngầm i = 1 i: Int = 1 scala> val ngầm s = "hi" s: java.lang.String = hi scala> def concat (implicit x: Int, y: String) = x + y concat: (ngầm x: Int, ngầm y: String) String scala> concat res0: String = 1hi –