Warum wird ein Bereich nach der Kartenoperation in einen Vektor umgewandelt?

Nach den Scala-Kursen auf Coursera zeigte Martin Odersky einen Beispielcode:

1 to 5 map ( i => i*i )

Und er sagte dasRange verwandelt sich in eineVector weil sie die gleiche Schnittstelle teilen (IndexedSeq) und das Ergebnis konnte nicht als dargestellt werdenRange (In seinem Beispiel war es klarer, da er ein Paar erzeugte, das nicht als ein darstellbar istRange).

Ich bin mir nicht sicher, ob ich das verstehe, weil ich glaube, dass er zuvor gesagt hat, dass in einem for-Ausdruck der 1. Generator die Art des Elements bestimmt, das ergeben wird, und es scheint zumindest für nicht immer wahr zu seinRange.

Und ich bin mir nicht sicher, warum die Ausgabe istVector, daVector ist möglicherweise nicht die einzige andere Implementierung, die das oben berechnete Ergebnis darstellen kann.

Kann mir bitte jemand helfen, diesen Teil zu verstehen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage