2014-06-14 32 views
1

在遊戲框架Action.scala的文件中,有一個如下功能:如何理解函數體中,而不是在函數參數列表類型

final def apply[A](bodyParser: BodyParser[A]) 
     (block: R[A] => Result): Action[A] 
     = async(bodyParser) { req: R[A] => 
    Future.successful(block(req)) 
    } 

有如下一段:

{ req: R[A] => 
     Future.successful(block(req)) 
     } 

如果在一個函數參數列表:這意味着REQ是一種類型的

R[A] =>Future.successful(block(req)) 

但它應用於塊REQ(REQ ),所以看起來像遞歸。現在它不在參數列表中,而是在一個實體中,如何理解它?

+2

否,REQ是R型[A],REQ的:R A] => Future.successful(block(req))是af取得一個類型爲R [A]的對象並返回Future.successful(block(req)) – Siphor

+0

@Siphor你應該將它作爲答案發布。 –

回答

3

不,請求類型爲R [A]。
REQ:R A] => Future.successful(塊(REQ))是一個函數,它類型R [A]的一個對象,並返回Future.successful(塊(REQ))

示例:

def fun(param:Int=>String)=param(9) 

聲明瞭一個函數,它的功能作爲一個參數

def fun2 = fun({i:Int=>i.toString}) 

給出樂趣實施的功能

+0

如果我們有「def fun(param:Int => String)」,它說param是一個函數,它接受一個I​​nt併產生一個String。但是req:R [A] => Future.successful(block(req))是完全不同的,你能否僞造一個簡單的示例函數來幫助理解它? –

相關問題