Dlaczego zakres jest przekształcany na wektor po operacji mapy?

Po kursach Scala na Coursera Martin Odersky pokazał przykładowy kod:

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

I powiedziałRange zostaje przekształcony wVector ponieważ mają ten sam interfejs (IndexedSeq), a wynik nie może być reprezentowany jakoRange (w przykładzie było bardziej jasne, ponieważ wygenerował parę, która nie jest reprezentowana jako a.)Range).

Nie jestem pewien, czy rozumiem, ponieważ myślę, że powiedział wcześniej, że w wyrażeniu 1 generator określi rodzaj elementu, który zostanie uzyskany i wydaje się, że nie zawsze jest to prawdą, przynajmniej dlaRange.

I nie jestem pewien, dlaczego rozumiem, dlaczego wyjście jestVector, boVector może nie być jedyną inną implementacją, która może reprezentować wynik obliczony powyżej.

Czy ktoś może mi pomóc zrozumieć tę część?

questionAnswers(3)

yourAnswerToTheQuestion