我经常使用Scalaz pimps找到解决问题的好方法。通常这种解决方案可以像这样工作:
import scalaz._
import Scalaz._
foobar frobnicate quux
// magic
现在,我希望能够看到我实际使用了哪些隐式转换来为我的Foobar
添加一个frobnicate方法。通过这种方式,我可以进行更精细的导入,并学习有关我隐式使用的工具的新知识。
有没有一种方法可以找出编译器实际用于编译某个表达式的隐式转换?
我经常使用Scalaz pimps找到解决问题的好方法。通常这种解决方案可以像这样工作:
import scalaz._
import Scalaz._
foobar frobnicate quux
// magic
现在,我希望能够看到我实际使用了哪些隐式转换来为我的Foobar
添加一个frobnicate方法。通过这种方式,我可以进行更精细的导入,并学习有关我隐式使用的工具的新知识。
有没有一种方法可以找出编译器实际用于编译某个表达式的隐式转换?
-Xprint:typer
选项来查看您的代码的完全展开版本。在sbt项目中,可以添加以下行:scalacOptions += "-Xprint:typer"
打开build.sbt
文件,运行compile
命令查看结果。
(摘自retronym提供的答案)