scala – 如果没有给出变量的类型,我如何确定?
发布时间:2020-12-16 19:11:56 所属栏目:安全 来源:网络整理
导读:假设,我们有类似的东西: val x = "foo".charAt(0) 让我们进一步假设,我们不知道方法charAt(0)的返回类型(当然,在Scala API中描述).有没有办法,我们可以找出变量x在其定义之后具有哪种类型以及何时未明确声明? 更新1: 我最初的问题不够精确:我想知道(出于
假设,我们有类似的东西:
val x = "foo".charAt(0) 让我们进一步假设,我们不知道方法charAt(0)的返回类型(当然,在Scala API中描述).有没有办法,我们可以找出变量x在其定义之后具有哪种类型以及何时未明确声明? 更新1: 解决方法
假设您在名为Something.scala的源文件中包含以下内容:
object Something { val x = "foo".charAt(0) } 您可以使用-Xprint:typer编译器标志在编译器的typer阶段之后查看程序: $scalac -Xprint:typer Something.scala [[syntax trees at end of typer]]// Scala source: Something.scala package <empty> { final object Something extends java.lang.Object with ScalaObject { def this(): object Something = { Something.super.this(); () }; private[this] val x: Char = "foo".charAt(0); <stable> <accessor> def x: Char = Something.this.x } } 你也可以使用:在REPL中输入: scala> :type "foo".charAt(0) Char scala> :type "foo".charAt _ Int => Char 正如Luigi Plinge在上面的评论中指出的那样,您的IDE也可以提供更好的方式来获取这些信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |