Это что-то интересное, которое я заметил сегодня во время игры Scala REPL в IntelliJ.Почему идентичные объекты получают разные печатные выходы в IntelliJ Scala REPL в зависимости от того, как они были созданы?
Учитывая эти две линии:
val myVector = Vector.tabulate(10)((x: Int) => x + 1)
val myVector2 = (1 to 10).toVector
В REPL печатает:
myVector: scala.collection.immutable.Vector[Int] = Vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
myVector2: Vector[Int] = Vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Почему первое шоу весь путь (scala.collection.immutable.Vector [Int]), в то время как второй - это только Vector [Int]?
Чтобы покрыть все основания, я подтвердил, что они действительно являются тем же классом:
myVector: Class[?0] = class scala.collection.immutable.Vector
myVector2: Class[?0] = class scala.collection.immutable.Vector
Это больше любопытства, чем ничего, но это может быть запутанным для новичков, которые, скорее всего, использовать РЕПЛ.
Это отличный ответ @ сома-snytt. Спасибо, сегодня я узнал что-то новое. –