Was ist gemeint mit Scala Pfad-abhängige Typen?
Ich habe gehört, dass Scala hat die Pfad-abhängige Typen. Es ist etwas zu tun mit inneren Klassen, aber was bedeutet das eigentlich und warum sollte mich das interessieren?
- Ich weiß auch, was PDTs sind; ich hoffte, dass SO sein könnte, angereichert mit einer Antwort!
- Ich hoffe, dass es eine lapidar beantworten nach dem Lesen ch12 über PDT
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mein Lieblings-Beispiel:
So, die Art der
Coordinate
ist abhängig von der Instanz vonBoard
von der es instanziiert wurde. Es gibt alle Arten von Dingen, die erreicht werden kann mit dieser, geben eine Art Sicherheit geben, dass ist abhängig von Werte und Arten nicht allein.Das hört sich wie abhängige Arten, aber es ist mehr eingeschränkt. Zum Beispiel, die Art der
occupied
ist abhängig von dem Wert derBoard
. Vor der letzten Zeile nicht funktioniert, da der Typ vonc2
istb2.Coordinate
, währendoccupied
's Art istSet[b1.Coordinate]
. Beachten Sie, dass eine Nutzung einer anderen Kennung mit der gleichen Art vonb1
, so ist es nicht die identifierb1
ist, dass im Zusammenhang mit der Art. Zum Beispiel, die folgenden Werke:b1
natürlich. 20 ist nicht Teil des Pfades.