我知道在SCALA中我可以通过定义一些隐式函数将类型转换为另一种类型,我的问题是,如何在导入大量软件包后知道可以使用哪些转换?
例如,我有一个字符串,而且我怎么知道它可以转换为什么类型?
编辑澄清,我想在我的scala编译插件中执行它,所以我可能需要在一个reflect.api.tree类型上调用一个函数,然后得到implicits.我正在寻找一些方法来使用答案中提到的隐式[].
在REPL中,您可以调用:implicits以查看除Predef中可用的范围之外的所有范围内隐含.(添加-v以查看Predef含义.)
您还可以implicitly[]从代码中的任何位置调用该函数来测试特定的含义.
scala> implicitly[String => Seq[Char]]
res0: String => Seq[Char] = <function1>
scala> implicitly[String => Array[Char]]
<console>:12: error: No implicit view available from String => Array[Char].
implicitly[String => Array[Char]]
^
Run Code Online (Sandbox Code Playgroud)