我(有点)了解Scala的类型系统的基础知识,但还不够好!为什么下面这两个函数的返回类型不被认为是等价的?类型边界/多态混淆
trait Base[T]
case class Foo() extends Base[Foo]
case class Bar() extends Base[Bar]
def willNotCompile[T <: Base[_]](x: Int): T =
if(x < 10) new Foo() else new Bar()
def compilesFine(x: Int): Base[_] =
if(x < 10) new Foo() else new Bar()