Imprimir clases de casos como Pretty Printed Tree en Scala
Este artículo le enseñará cómo imprimir clases de casos como árboles (bastante impresos) en Scala.
Imprimir clases de casos como Pretty Printed Tree en Scala
Imprimir la salida en forma de árbol es muy útil cuando se crean analizadores en Scala.
Tenemos un paquete llamado sext
que podemos usar para imprimir bastante las clases de casos. Proporciona muchas funciones útiles, como treeString
y valueTreeString
, que pueden imprimir la salida en forma de árbol.
Pero para que funcione, primero debemos agregar una dependencia en las dependencias de nuestra biblioteca. Primero, tenemos que abrir la dependencia SBT en nuestro proyecto y agregarle la siguiente línea:
libraryDependencies += "com.github.nikita-volkov" % "sext" % "0.2.4"
Ahora podemos usar la declaración de importación import sext._
en nuestro programa. Veamos un ejemplo para entenderlo mejor.
Código de ejemplo:
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)
}
Producción :
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