2017-02-27 64 views
0

我正在閱讀有關Scala中提升方法演示的教程。下面是基本類的代碼:Scala:在這種情況下_代表什麼

case object None extends Optional[Nothing] 

case class Presenter[+A](get: A) extends Optional[A] 

trait Optional[+A] { 
    def map[B](f: A => B): Optional[B] = this match { 
    case None => None 
    case Presenter(x) => Presenter(f(x)) 
    } 
} 

這裏是瘦臉方法:

def lift[A, B](f: A => B): Optional[A] => Optional[B] = _ map f 

我的問題是:什麼是下劃線(「_」)在上面的函數表示。

感謝

+0

電梯將從Optional [A]返回到Optional [B]的新功能。所以可選[A]是這個新函數的輸入參數。 因此,在這種情況下,_表示參數Optional [A],在其上使用'lift'函數的'f'參數調用'map'函數。 –

回答

1

_ map f等於(a: Optional[A]) => a.map(f)_是通配符Scala的。對於您的示例,這意味着參數的類型爲Optional[A]並適用於map f

+0

謝謝。你能告訴我什麼規則在斯卡拉我們知道什麼_映射到 –

+0

標記爲重複的答案更適合你。 :) – chengpohi

相關問題