让我们说,我们有以下斯卡拉:协变函数
trait Foo
class Bar extends Foo
def foobar(fn: Option[Set[_ <: Foo] => Unit]) {}
def main(args: Array[String]) {
foobar(Option(bar)) //doesnt compile
}
def bar(input: Set[Bar]) {}
代码片断这行得编译,因为函数一个被定义为trait Function1 [-T1, +R] extends AnyRef
。无论如何,我的问题是在Scala中编写一个函数,它需要一个T型或其子类型并执行一些操作?或者,正如我害怕它不可能