Fallklassen wie Pretty Printed Tree in Scala drucken
In diesem Artikel erfahren Sie, wie Sie Fallklassen wie (hübsch gedruckte) Bäume in Scala drucken.
Fallklassen wie Pretty Printed Tree in Scala drucken
Das Drucken der Ausgabe in einer Baumstruktur ist sehr nützlich, wenn Sie Parser in Scala erstellen.
Wir haben ein Paket namens sext
, mit dem wir die Fallklassen hübsch drucken können. Es bietet viele nützliche Funktionen wie treeString
und valueTreeString
, die die Ausgabe baumartig ausdrucken können.
Aber damit es funktioniert, müssen wir zuerst eine Abhängigkeit in unseren Bibliotheksabhängigkeiten hinzufügen. Zuerst müssen wir die SBT-Abhängigkeit in unserem Projekt öffnen und die folgende Zeile hinzufügen:
libraryDependencies += "com.github.nikita-volkov" % "sext" % "0.2.4"
Nun können wir in unserem Programm die Import-Anweisung import sext._
verwenden. Sehen wir uns ein Beispiel an, um es besser zu verstehen.
Beispielcode:
object Example extends App {
import sext._
case class ourClass( kind : Kind, list : List[ tree ] )
sealed trait Kind
case object Complex extends Kind
case class tree( a : Int, b : String )
val store = ourClass(Complex,List(tree(1, "abcd"), tree(2, "efgh")))
println("output using treeString:\n")
println(store.treeString)
println()
println("output using valueTreeString:\n")
println(store.valueTreeString)
}
Ausgabe:
output using treeString:
ourClass:
- Complex
- List:
| - tree:
| | - 1
| | - abcd
| - tree:
| | - 2
| | - efgh
output using valueTreeString:
- kind:
- list:
| - - a:
| | | 1
| | - b:
| | | abcd
| - - a:
| | | 2
| | - b:
| | | efgh