HOWTO · Scala

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

Cet article parle des classes de cas d'impression comme l'arbre(assez imprimé).

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