在 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