如果我评估,请参阅Scala repl:
val lines : String = ("a1 , test1 , test2 , a2 , test3 , test4")
lines.split(",").grouped(3).toList
我在保存时收到了这个:
//> res0: List[Array[String]] = List(Array("a1 ", " test1 ", " test2 "), Array("
//| a2 ", " test3 ", " test4"))
我希望能够将此信息打印到控制台,res0的值
因此printTypeInformation(lines.split(",").grouped(3).toList)
之类的内容将与上面的res0打印相同的值。我想我可以通过迭代List打印值和类型信息来实现上述类型。但是,是否有更通用的方法可以打印任何类型的信息?
答案 0 :(得分:1)
作为pointed out by @Jatin ,你可以用清单做到这一点:
def manOf[T: Manifest](t: T): Manifest[T] = manifest[T]
val lines : String = ("a1 , test1 , test2 , a2 , test3 , test4")
val xs = lines.split(",").grouped(3).toList
println(manOf(xs))
// scala.collection.immutable.List[Array[java.lang.String]]
答案 1 :(得分:1)
答案接近来自 om-nom-nom 的答案,但从scala 2.10开始,我认为最好使用TypeTags:
scala> "a1 , test1 , test2 , a2 , test3 , test4"
res3: String = a1 , test1 , test2 , a2 , test3 , test4
scala> res3.split(",").grouped(3).toList
res4: List[Array[String]] = List(Array("a1 ", " test1 ", " test2 "), Array(" a2 ", " test3 ", " test4"))
scala> def typped[T: TypeTag](obj: T) = typeOf[T]
typped: [T](obj: T)(implicit evidence$1: reflect.runtime.universe.TypeTag[T])reflect.runtime.universe.Type
scala> typped(res4)
res5: reflect.runtime.universe.Type = scala.List[scala.Array[String]]