I m试图使<代码>印本代码>替换,即产出以更可读格式封存。 最好举一个例子说明这一点:如List(Set(Vector(1.0,1.1),Vctor(0d)), Set(Vector(a),“b”,“c”, Vector(x”,“y”)
。
List
Set
Vector(1.0, 1.1)
Vector(0.0)
Set
Vector(a, b, c)
Vector(x, y)
如果没有类型抹去,那将非常容易,但我已经来到这里。
def rprint(a: Any, indent: Int = 0): Unit = a match {
case x: Traversable[_] =>
if (x.isEmpty)
rprint(x.toString, indent)
else x.head match {
case y: Traversable[_] => {
rprint(x.toString.takeWhile(_ != ( ), indent)
x foreach {i => rprint(i, indent + 2)}
}
case y => rprint(x.toString, indent)
}
case x => println(" " * indent + x)
}
我在努力争取与Arrays一道工作,而没有大量的法典重复。 我同他们一样,为其他收集工作。 具体地说:
轨道不适用<代码>。
could convert Arrays using
genericArrayOps
to ArrayOps which isTraversableOnce
, butTraversableOnce
doesn t have ahead
method, so I can t see how to get an element to check its typetoString
doesn t work quite like other collections (use.deep
)
将阿雷拉纳入这一方法的最佳方式是什么,或者是否采取可以更好发挥作用的不同做法?