Scala – 如何打印案例类,如(漂亮的打印)树
发布时间:2020-12-16 09:47:28 所属栏目:安全 来源:网络整理
导读:我使用Scala Combinators做一个解析器。太棒了。我最终得到一个长列表的entagled case类,如:ClassDecl(复杂,列表(VarDecl(Real,float),VarDecl(Imag,float))),只是100倍更长。我想知道是否有一个好的方法来打印像类这样的树类样式的案例类,这样更容
我使用Scala Combinators做一个解析器。太棒了。我最终得到一个长列表的entagled case类,如:ClassDecl(复杂,列表(VarDecl(Real,float),VarDecl(Imag,float))),只是100倍更长。我想知道是否有一个好的方法来打印像类这样的树类样式的案例类,这样更容易阅读..? (或某种其他形式的漂亮打印)
ClassDecl name = Complex fields = - VarDecl name = Real type = float - VarDecl name = Imag type = float ^我想结束这样的东西 编辑:奖金问题 是否还有一种方法来显示参数的名称? Like:ClassDecl(name = Complex,fields = List(…)? 解决方法
查看一个名为
sext的小扩展库。它出口
these two functions完全为了这样的目的。
以下是如何用于您的示例: object Demo extends App { import sext._ case class ClassDecl( kind : Kind,list : List[ VarDecl ] ) sealed trait Kind case object Complex extends Kind case class VarDecl( a : Int,b : String ) val data = ClassDecl(Complex,List(VarDecl(1,"abcd"),VarDecl(2,"efgh"))) println("treeString output:n") println(data.treeString) println() println("valueTreeString output:n") println(data.valueTreeString) } 以下是该程序的输出: treeString output: ClassDecl: - Complex - List: | - VarDecl: | | - 1 | | - abcd | - VarDecl: | | - 2 | | - efgh valueTreeString output: - kind: - list: | - - a: | | | 1 | | - b: | | | abcd | - - a: | | | 2 | | - b: | | | efgh (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |