【问题标题】:Showing inferred types of Scala expressions显示推断的 Scala 表达式类型
【发布时间】:2012-03-03 01:32:31
【问题描述】:

如何查看 Scala 编译器为表达式等推断出的类型?我有一些代码具有复杂的类型推断和隐式转换,仅通过阅读代码很难看出发生了什么。

我已经尝试添加

scalacOptions in Compile += "-Xprint-types"

在 build.sbt 中,但这没有效果。

直接使用 scalac 不是很吸引人,因为我有很多依赖项。

我使用 Eclipse Scala 插件和 ENSIME 编写代码,并使用 SBT 进行构建。

【问题讨论】:

    标签: eclipse scala sbt


    【解决方案1】:

    应该是的

    scalacOptions in Compile ++= Seq("-Xprint-types", "-Xprint:typer")
    

    改为。

    不幸的是,输出不是很可读。 :(

    【讨论】:

      【解决方案2】:

      Eclipse Scala IDE 3.0 中已经添加了这个确切的功能!

      选择代码的任何部分并按 Ctrl-Shift-W T(在 Mac 上用 Cmd 替换 Ctrl)以查看推断的类型。

      【讨论】:

        【解决方案3】:

        将表达式提升到非本地 defval,没有显式类型 - 然后它将出现在 Eclipse 的大纲视图中,并分配一个推断类型。

        但是,这不是一个理想的解决方案,因为它需要一些工作,并且在涉及递归时无法使用。

        【讨论】:

          猜你喜欢
          • 2023-03-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-29
          • 2020-10-12
          • 1970-01-01
          • 2023-03-08
          相关资源
          最近更新 更多