在 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