Scala のきれいに印刷された木のような印刷ケースクラス

Suraj P 2022年6月13日
Scala のきれいに印刷された木のような印刷ケースクラス

この記事では、Scala で(きれいに印刷された)ツリーのようなケースクラスを印刷する方法を説明します。

Scala のきれいに印刷された木のような印刷ケースクラス

Scala でパーサーを作成する場合、出力をツリーのように印刷すると非常に便利です。

ケースクラスをきれいに印刷するために使用できる sext というパッケージがあります。treeStringvalueTreeString など、ツリーのように出力を印刷できる多くの便利な関数を提供します。

ただし、これを機能させるには、最初にライブラリの依存関係に依存関係を追加する必要があります。まず、プロジェクトで SBT 依存関係を開き、それに次の行を追加する必要があります。

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

これで、プログラムで import ステートメント 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
著者: 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