Fallklassen wie Pretty Printed Tree in Scala drucken

Suraj P 13 Juni 2022
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
Autor: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub