Почему диапазон преобразовывается в вектор после операции карты?
После курсов Scala на Coursera Мартин Одерский показал пример кода:
1 to 5 map ( i => i*i )
И он сказалRange
превращается вVector
потому что они имеют один и тот же интерфейс (IndexedSeq
) и результат не может быть представлен в видеRange
(это было более ясно в его примере, так как он создал пару, которая не может быть представлена в видеRange
).Я'
Я не уверен, что понимаю, потому что я думаю, что он сказал ранее, что в выражении for 1-й генератор определит тип элемента, который будет получен, и это не всегда так, по крайней мере, для.Range
И я'Я не уверен, чтобы понять, почему на выходеVector
, так какVector
может не быть единственной другой реализацией, которая может представлять результат, вычисленный выше.
Может кто-нибудь помочь мне понять эту часть, пожалуйста?