在 Scala 中像漂亮的打印树一样打印案例类
Suraj P
2022年6月7日
本文将教你如何在 Scala 中打印案例类,例如(漂亮打印的)树。
在 Scala 中像漂亮的打印树一样打印案例类
在 Scala 中制作解析器时,以树状方式打印输出非常有用。
我们有一个名为 sext
的包,我们可以使用它来漂亮地打印案例类。它提供了许多有用的函数,例如 treeString
和 valueTreeString
,可以以类似树的方式打印输出。
但要使其工作,我们必须首先在我们的库依赖项中添加一个依赖项。首先,我们必须在我们的项目中打开 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