在 Scala 中像漂亮的打印树一样打印案例类

Suraj P 2022年6月7日
在 Scala 中像漂亮的打印树一样打印案例类

本文将教你如何在 Scala 中打印案例类,例如(漂亮打印的)树。

在 Scala 中像漂亮的打印树一样打印案例类

在 Scala 中制作解析器时,以树状方式打印输出非常有用。

我们有一个名为 sext 的包,我们可以使用它来漂亮地打印案例类。它提供了许多有用的函数,例如 treeStringvalueTreeString,可以以类似树的方式打印输出。

但要使其工作,我们必须首先在我们的库依赖项中添加一个依赖项。首先,我们必须在我们的项目中打开 SBT 依赖并添加以下行:

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

现在我们可以在我们的程序中使用导入语句 import sext._。让我们看一个例子来更好地理解它。

示例代码:

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

输出:

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