Ich bin in Scala und den ersten Kapiteln durch Funktionale Programmierung arbeiten definieren diese Art der Datenstruktur:Ändern der Liste Klasse
sealed trait List[+A]
case object Nil extends List[Nothing]
case class Cons[+A](head: A, tail: List[A]) extends List[A]
Wenn ich versuche, eine verknüpfte Liste wie folgt zu definieren; es funktioniert wie erwartet:
val nums: List[Int] = Cons(1, Cons(2, Cons(3, Nil)));
ich aber ich versuche, eine verknüpfte Liste wie folgt zu definieren, aber ich bekomme einen Kompilierungsfehler (Expression von Typ scala.collection.immutable.List [Int] entspricht nicht erwartet type List [Int]:
val nums: List[Int] = List[Int](1, 2, 3)
Meine Frage ist - 1) Deklariert die Deklaration der Datenstruktur die interne Klasse der Liste? 2) Warum kann die zweite Struktur nicht verwendet werden?