1

如何在 Scala 中查看变量的类型?

我试图这样做:

val x = 10
println(type(x))

或者

val x = 'Hello!'
println(x.type)

不幸的是,在这两种方式中,我都有错误。

4

1 回答 1

6

根据您要执行的操作,这可能就足够了

val x=10
println(x.getClass.toString)

但是,由于类型擦除,这会崩溃;Scala 比 Java 有更多的信息,上面只给你 Java 的观点。这里有一个关于这个主题的线程;结果是:

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
于 2013-11-02T14:30:54.573 回答