Scala является строго типизированным языком, поэтому во время компиляции компилятор должен знать, что это за тип, чтобы создать правильную программу.
Давайте посмотрим, что scala считает типом ваших векторов
scala> val chars = Vector('z', 'a', 'b')
chars: scala.collection.immutable.Vector[Char] = Vector(z, a, b)
scala> val strs = Vector("these", "are", "vectors")
strs: scala.collection.immutable.Vector[String] = Vector(these, are, vectors)
scala> val ints = Vector(0, 3, 7)
ints: scala.collection.immutable.Vector[Int] = Vector(0, 3, 7)
scala> val vs = Vector(chars, ints, strs)
vs: scala.collection.immutable.Vector[scala.collection.immutable.Vector[Any]] = Vector(Vector(z, a, b), Vector(0, 3, 7), Vector(these, are, vectors))
Как вы можете видеть, вектор, который вы создали для итерации, имеет тип
scala.collection.immutable.Vector[Any]
Чтобы быть сортируемым, мы должны иметь возможность определить <, <=, >, >=
и, как выКак видно из определения класса Any
, этот тип реализует только !=, ==
Таким образом, мы не можем отсортировать объект с типом Any
, потому что, используя только операторы равенства, а не операторы равенства, мы непонять, что такое правильный порядок.
https://www.scala -lang.org / api / 2.7.5 / scala / Any.html