Imprimer des classes de cas comme un joli arbre imprimé dans Scala

Suraj P 13 juin 2022
Imprimer des classes de cas comme un joli arbre imprimé dans Scala

Cet article vous apprendra comment imprimer des classes de cas comme des arbres (joliment imprimés) dans Scala.

Imprimer des classes de cas comme un joli arbre imprimé dans Scala

L’impression de la sortie sous forme d’arborescence est très utile lors de la création d’analyseurs dans Scala.

Nous avons un package appelé sext que nous pouvons utiliser pour imprimer joliment les classes de cas. Il fournit de nombreuses fonctions utiles, telles que treeString et valueTreeString, qui peuvent imprimer la sortie sous forme d’arborescence.

Mais pour que cela fonctionne, nous devons d’abord ajouter une dépendance dans nos dépendances de bibliothèque. Tout d’abord, nous devons ouvrir la dépendance SBT dans notre projet et y ajouter la ligne suivante :

libraryDependencies += "com.github.nikita-volkov" % "sext" % "0.2.4"

Nous pouvons maintenant utiliser l’instruction d’importation import sext._ dans notre programme. Voyons un exemple pour mieux comprendre.

Exemple de code :

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)
}

Production:

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
Auteur: 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