Warum scala konvertieren Seq-Liste?
> val a:Seq[Integer] = Seq(3,4)
a: Seq[Integer] = List(3, 4)
Wenn Seq
ist nur ein Merkmal, warum der compiler /REPL akzeptieren es und macht es sich so Verhalten, dass es für viele andere Merkmale oder auch abstrakte Klassen?
- Die bisher vorgesehenen Antwort nicht zu beantworten, der Teil der Begründung ist es, und ob dieser bestreut, um viel von der scala Sammlungen Bibliothek. Wenn es gut ist würde ich sehr glücklich sein, von Ihr lernen!
- Hinzugefügt einige Gründe 😉
- Gut. [Kommentar Mindestlänge Füller]
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es nicht konvertieren, nichts.
Seq
ist eine Eigenschaft, Sie können nicht wirklich instanziert, nur mischen Sie es in einigen Klassen.Seit
apply
Methode derSeq
Begleiter Objekt hat wieder einige konkrete Instanz der Klasse (das mischt inSeq
Merkmal), gibt es eineList
das scheint zu sein, einen angemessenen Standard.Einer situation hilfreich sein kann, ist, wenn Sie müssen einige
Seq
Beispiel, aber kümmern sich nicht um die Umsetzung und nicht die Zeit haben, schauen Sie sich die Art Hierarchie zu finden, eine geeignete Klasse dieSeq
.Seq(3,4)
garantiert ist, geben Sie etwas, das gehorcht derSeq
Vertrag.Seq
würden Sie verwenden?Seq.apply
und vermeiden das problem vollständig.Vector
ist die default-Implementierung vonIndexedSeq
.Seq.apply
.Die default-Implementierung für
Seq
ist eine Liste, wie oben im scaladoc hier:Seq-Objekt
Was sagt
Beim Aufruf
Seq(3,4)
Sie tatsächlich aufzurufenSeq.apply(3,4)
baut eine Sequenz von zwei Elementen alsList
darunter.