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