如何在Scala中看到变量的类型?
我试图这样做:
val x = 10
println(type(x))
或
val x = 'Hello!'
println(x.type)
不幸的是,在这两种方式中我都有错误。
答案 0 :(得分:5)
根据您的尝试,这可能就足够了
val x=10
println(x.getClass.toString)
然而,由于类型擦除,这会中断; Scala有比Java更多的信息,上面只给出了Java的视图。这个主题有一个thread here更多;结果是:
def manOf[T:Manifest](t:T):Manifest[T] = manifest[T]
println(manOf(1))
println(manOf(List(1,2,3)))
让你
Int
scala.collection.immutable.List[Int]
当.getClass.toString
方法只会给你一个int
和一个神秘的class scala.collection.immutable.$colon$colon
当然,如果您使用的是REPL shell,它会告诉您(scala)类型的东西:
$ scala
Welcome to Scala version 2.9.2 (OpenJDK 64-Bit Server VM, Java 1.6.0_27).
Type in expressions to have them evaluated.
Type :help for more information.
scala> val x=10
x: Int = 10