Почему вызов fn(Iterator("foo") компилируется, но вызов fn(fooIterator) завершается с ошибкой "несоответствие типов; найдено: Iterator[java.lang.String] required: scala.Iterator[ com.banshee.Qx.HasLength]"
object Qx {
type HasLength = {def length: Int}
def fn(xs: Iterator[HasLength]) = 3
var tn = fn(Iterator("foo"))
var fooIterator = Iterator("foo")
var tnFails = fn(fooIterator) //doesn't compile
}
Разве это не одно и то же?