Scala のきれいに印刷された木のような印刷ケースクラス
Suraj P
2022年6月13日
この記事では、Scala で(きれいに印刷された)ツリーのようなケースクラスを印刷する方法を説明します。
Scala のきれいに印刷された木のような印刷ケースクラス
Scala でパーサーを作成する場合、出力をツリーのように印刷すると非常に便利です。
ケースクラスをきれいに印刷するために使用できる sext
というパッケージがあります。treeString
や valueTreeString
など、ツリーのように出力を印刷できる多くの便利な関数を提供します。
ただし、これを機能させるには、最初にライブラリの依存関係に依存関係を追加する必要があります。まず、プロジェクトで 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