2012-11-19 28 views
0

下面的下劃線表示什麼意思。這是scalaz7庫的片段:表達式中的下劃線

trait Apply[F[_]] extends Functor[F] { self => 
    //... 
    def ap[A, B](fa: => F[A])(f: => F[A => B]): F[B] 
    //... 
    def apF[A, B](f: => F[A => B]): F[A] => F[B] = ap(_)(f) // <----HERE 
    //... 
} 

什麼是使用它的一般規則?

+3

更一般地,請參閱http://stackoverflow.com/questions/8000903/what-are-all-the-uses-of-an-underscore-in-scala –

回答

5

在Scala中,下劃線一般是通配符。具體而言,它是參數名稱的縮寫。所以lambda表達式ap(_)(f)等於x => ap(x)(f)

如果每個參數只使用一次,則可以使用_作爲匿名函數的參數的簡寫,並且按聲明的順序使用它們。

相關問題