2011-04-04 32 views
1

如果我想讓該參數爲隱式,如何使用類型註釋函數文字的參數?使用類型註解函數文字的隱含參數

trait Test { def call[C, T](fun: C => T): T } 

def test1(t: Test): Unit = 
    t.call { c: Int => 33 } // ok 

def test2(t: Test): Unit = 
    t.call { implicit c => 33 } // type missing... 

def test3(t: Test): Unit = 
    t.call { (implicit c: Int) => 33 } // not possible... 

回答

2

Scala 2.8.0引入了函數文字的隱式參數。但是,正如你所發現的那樣,語法限於沒有類型註釋的單個參數。

在Scala 2.9.0中可以使用單一類型的參數。

https://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/test/files/pos/t3672.scala?rev=23288

https://lampsvn.epfl.ch/trac/scala/changeset/23289

它們尚未被的IntelliJ分析器處理,雖然:http://youtrack.jetbrains.net/issue/SCL-2441

+0

好消息,期待2.9.0.final! – 2011-04-04 16:32:09

相關問題